mysql – 为什么这个查询不选择任何行

这个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

最佳答案 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);

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

点赞