我有一个名为“actions”的表格,其中DATETIME
列名为“已发生”。我试图通过以下方式返回今天的记录
SELECT * FROM `actions` WHERE `occurred` = DATE(NOW());
但我得到一个空的结果集。如果我取出WHERE
子句,我可以看到表中的所有295行,并且从今天开始至少有30行。稍后我将编写另一个查询来返回今天的日期和过去的X天数之间的所有记录,但在我到达那里之前,我需要知道为什么这个查询返回一个空的结果集。
提前致谢。
答案 0 :(得分:7)
SELECT * FROM actions WHERE DATE(ocurred) = CURDATE();
DATE(ocurred)
忽略时间部分。
以下是使用数据的SQL小提琴:http://www.sqlfiddle.com/#!2/81708/2
答案 1 :(得分:4)
如果occurred
中没有将来的日期,您可以在下面使用:
SELECT * FROM `actions` WHERE `occurred` > DATE_SUB(CURDATE(), INTERVAL 1 DAY);