MySQL使用DATETIME字段中的DATE返回今天的记录

时间:2012-10-22 02:01:30

标签: mysql sql date datetime where

我有一个名为“actions”的表格,其中DATETIME列名为“已发生”。我试图通过以下方式返回今天的记录

SELECT * FROM `actions` WHERE `occurred` = DATE(NOW());

但我得到一个空的结果集。如果我取出WHERE子句,我可以看到表中的所有295行,并且从今天开始至少有30行。稍后我将编写另一个查询来返回今天的日期和过去的X天数之间的所有记录,但在我到达那里之前,我需要知道为什么这个查询返回一个空的结果集。

提前致谢。

2 个答案:

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