我在这个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中的列。我可以使用这些吗?
提前致谢
答案 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";