1

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

$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 中解决这个问题? data是一种varchar类型。。

谢谢

4

2 回答 2

1

您可以使用:

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

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

于 2012-12-14T15:22:07.257 回答
0

如果data包含Ymd格式化的日期字符串,您应该能够:

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

您可以比较字符串:'2012' > '2011''b' > 'a',在您的情况下,'20121214' > '20120701'例如 。

于 2012-12-14T15:19:15.380 回答