我有这个查询,我用它来获取两个日期之间的记录信息。
$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
类型..
由于
答案 0 :(得分:1)
您可以使用:
echo $data ="select * FROM forma WHERE STR_TO_DATE(data, '%d/%m/%Y') BETWEEN '".$start1."' AND '".$end1."' ;
此外,您还可以使用mysql函数添加额外的包装,以创建您喜欢的日期格式。为此使用date_format()
答案 1 :(得分:0)
如果data
由Ymd
格式的日期字符串组成,您应该能够:
$data="SELECT * from forma WHERE data BETWEEN '".$start1."' AND '".$end1."'";
您可以比较字符串:'2012' > '2011'
和'b' > 'a'
,例如,'20121214' > '20120701'
。