MySQL DATEDIFF行为不一致

时间:2009-11-20 14:39:46

标签: mysql datediff

当我使用此查询时:

SELECT COUNT(*) FROM `my_table` WHERE DATEDIFF(NOW(), updated) > 2

MySQL执行查询时没有错误,我获得了过去2天内未更新的行数。但是,如果我像这样更改查询:

SELECT * FROM `my_table` WHERE DATEDIFF(NOW(), updated) > 2

我收到以下错误:

#1305 - FUNCTION mydatabase.DATEDIFF does not exist

为什么会出现这种情况?

2 个答案:

答案 0 :(得分:3)

确认DATEDIFF与方括号(之间没有空格。

您可以尝试SET sql_mode = "IGNORE_SPACE";

同时检查此bugreport

答案 1 :(得分:2)

我遇到了类似的问题,如果我没有设置LIMIT,它将无法在SELECT上运行。

尝试做类似的事情:

SELECT * FROM `my_table` WHERE DATEDIFF(NOW(), updated) > 2 LIMIT 0, 10

在MySQL更新中得到纠正。尝试更新你的MySQL版本。