sql查询在sql中查找日期之间的记录时出现问题
我使用这个查询来获取两个日期之间的记录信息sql查询在sql中查找日期之间的记录时出现问题,sql,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 ="S
$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
类型
谢谢如果
数据
由Ymd
格式的日期字符串组成,您应该能够:
$data="SELECT * from forma WHERE data BETWEEN '".$start1."' AND '".$end1."'";
您可以比较字符串:
'2012'>'2011'
和'b'>'a'
,例如,在您的情况下,'20121214'>'20120701'
。如果数据
包含Ymd
格式的日期字符串,您应该能够:
$data="SELECT * from forma WHERE data BETWEEN '".$start1."' AND '".$end1."'";
您可以比较字符串:'2012'>'2011'
和'b'>'a'
,例如,在您的例子中,'20121214'>'20120701'
。您可以使用:
echo $data ="select * FROM forma WHERE STR_TO_DATE(data, '%d/%m/%Y') BETWEEN '".$start1."' AND '".$end1."' ;
您还可以使用mysql函数添加额外的包装,以创建您喜欢的日期格式。对于该使用日期格式(),您可以使用:
echo $data ="select * FROM forma WHERE STR_TO_DATE(data, '%d/%m/%Y') BETWEEN '".$start1."' AND '".$end1."' ;
您还可以使用mysql函数添加额外的包装,以创建您喜欢的日期格式。对于使用日期格式()是的,我理解-我只是指该列中的格式。如果它是今天的
20121214
,它应该可以工作。是的,我明白了-我只是指那一栏中的格式。如果它是今天的20121214
,它应该可以工作。它会给我一个错误str_to_date'不是一个可识别的内置函数名。您使用的是哪个版本的MySQL?我使用最新版本的mysql。当您使用“%d/%m/%Y”时,varchar的值必须与2012年1月1日类似。问题是,我在SQL Server上,如上所述:)它给我一个错误str_to_date不是一个可识别的内置函数名。您使用的是哪个版本的MySQL?我使用最新版本的mysql。使用“%d/%m/%Y”时,varchar的值必须与2012年1月1日类似。问题是,我在SQL Server上,如上所述:)