为什么此查询不选择任何行

时间:2011-06-10 21:48:19

标签: mysql sql

这个SQL有什么问题?
它似乎应该工作,但事实并非如此。

utc_time是一个日期时间字段。

SELECT id
FROM `foo`
WHERE utc_time > now() 
AND utc_time <= DATE_ADD(curdate(),INTERVAL 24 day);

解释说Where子句是不可能的。

utc_time是日期时间类型。这是一个示例utc_time值:2011-06-21 00:45:00

1 个答案:

答案 0 :(得分:2)

utc_time()built-in function。即使没有括号,utc_time仍会返回当前的UTC时间。

转义名为utc_time的列。这工作(我测试过):

SELECT id
FROM `foo`
WHERE `utc_time` > now() 
AND `utc_time` <= DATE_ADD(curdate(),INTERVAL 24 day);

另一个例子,为什么使用保留字或函数名作为列/表名是一个坏主意。