SQL查询在SQL中的日期之间查找记录的问题

时间:2012-12-14 15:15:49

标签: sql

我有这个查询,我用它来获取两个日期之间的记录信息。

$start=$_REQUEST['from'];
$end=$_REQUEST['to'];
$startd = str_replace('/', '-', $start);
echo $start1=date('Ymd', strtotime($startd));
$endd = str_replace('/', '-', $end);
echo $end1=date('Ymd', strtotime($endd));
echo $data ="SELECT * from forma 
  WHERE DATE(data) BETWEEN '".$start1."' AND '".$end1."' ";
  $res = odbc_exec($connection, $data) or die(odbc_error());

我收到此错误:

]'DATE' is not a recognized built-in function name., SQL

但我怎样才能在SQL中解决这个问题? datavarchar类型..

由于

2 个答案:

答案 0 :(得分:1)

您可以使用:

echo $data ="select * FROM forma WHERE STR_TO_DATE(data, '%d/%m/%Y') BETWEEN '".$start1."' AND '".$end1."' ; 

此外,您还可以使用mysql函数添加额外的包装,以创建您喜欢的日期格式。为此使用date_format()

答案 1 :(得分:0)

如果dataYmd格式的日期字符串组成,您应该能够:

$data="SELECT * from forma WHERE data BETWEEN '".$start1."' AND '".$end1."'";

您可以比较字符串:'2012' > '2011''b' > 'a',例如,'20121214' > '20120701'