我在我的 Mysql 数据库中使用 php 进行日期比较时遇到问题。我的日期字段在 DATETIME 中,我正在使用下面的以下查询,但它没有返回正确的答案,请帮助我..这是代码
"SELECT * FROM record WHERE Dateincident >= $from AND Dateincident <=$to";
$from 和 $to 是从 jquery datepicker 获取的输入。
首先,您必须在日期时间值周围加上引号
$sql = "SELECT * FROM record WHERE Dateincident >= '$from' AND Dateincident <= '$to'";
^ ^ ^ ^
这相当于
$sql = "SELECT * FROM record WHERE Dateincident BETWEEN '$from' AND '$to'";
现在应该是正确的$from
格式$to
'YYYY-MM-DD' or 'YYYY-MM-DD HH:NN:SS'
喜欢
$from = '2013-06-01';
$to = '2013-06-26';
这是SQLFiddle演示
附带说明一下,考虑使用准备好的语句,而不是通过将 sql 语句与值连接来构造查询字符串。
可能是这样的:
SELECT *
FROM record
WHERE Dateincident BETWEEN <from> AND <to>
我在这个sql fiddle中对其进行了测试,它可以工作。
但问题可能不是您的 SQL 查询,而是您的 php 脚本。所以请试试这个:
$mysqlhost="yourDBHost";
$mysqluser="yourMYSQLUser";
$mysqlpwd="yourMYSQLPass";
$mysqldb="yourDataBaseName";
$connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die("Connection failed.");
mysql_select_db($mysqldb, $connection) or die("Database could not be selected.");
$query = "SELECT * FROM `record` WHERE `Dateincident` BETWEEN '".$from."' AND '".$to."'";
$rescource = mysql_query($query) or die("Error processing query.");
while($row = mysql_fetch_array($rescource)){
// do something with each row
}
mysql_close($connection);