1

我在这个 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 中的列。我可以使用这些吗?

提前致谢

4

1 回答 1

2

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

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

如果 StartDate >= EntryDate,你可以试试这个:

$sqlab = "SELECT * FROM _database12
 WHERE DATEDIFF(StartDate, EntryDate) < 14
 AND EntryDate >= '" . $_POST["from"] . "'
 AND EntryDate <= '" . $_POST["till"] . "'
 ORDER BY EntryDate DESC";
于 2013-11-08T11:57:50.313 回答