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