带有datediff的sql语句和来自db的列

时间:2013-11-08 11:46:52

标签: mysql sql datediff

我在这个sql语句中遇到DATEDIFF问题:

$sqlab = "select * from _database12";
$sqlab .= " where DATEDIFF (d,EntryDate,StartDate) < 14";
$sqlab .= " and EntryDate >= '".$_POST["from"]."%'";
$sqlab .= " and EntryDate <= '".$_POST["till"]."%'";
$sqlab .= " order by EntryDate DESC";

如果没有DATEDIFF,这可以很好地工作,但是我需要让它与DATEDIFF一起使用才能获得那些条目,其中StartDate减去EntryDate的时间少于14天。

EntryDate和StartDate是database12中的列。我可以使用这些吗?

提前致谢

1 个答案:

答案 0 :(得分:2)

您使用的是DATEDIFF的错误格式 - Transact-SQL DATEDIFF(datepart,startdate,enddate)? reference

在MySQL中,这里是参考:http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_datediff, 以天为单位给出的DATEDIFF(enddate,startdate)没有format / datepart参数。

如果StartDate&gt; = EntryDate:

,您可以尝试此操作
$sqlab = "SELECT * FROM _database12
 WHERE DATEDIFF(StartDate, EntryDate) < 14
 AND EntryDate >= '" . $_POST["from"] . "'
 AND EntryDate <= '" . $_POST["till"] . "'
 ORDER BY EntryDate DESC";