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

rws*_*907 5 mysql sql datetime date where

我有一个名为"actions"的表,其中包含一个名为"occurrence"的DATETIME列.我正在尝试通过执行以下操作返回今天的记录

SELECT * FROM `actions` WHERE `occurred` = DATE(NOW());
Run Code Online (Sandbox Code Playgroud)

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

提前致谢.

Len*_*rri 7

SELECT * FROM actions WHERE DATE(ocurred) = CURDATE();
Run Code Online (Sandbox Code Playgroud)

DATE(ocurred) 忽略了时间部分.

以下是使用数据的SQL小提琴:http://www.sqlfiddle.com/#!2/81708/2


xda*_*azz 5

如果将来没有日期occurred,您可以使用以下方法:

SELECT * FROM `actions` WHERE `occurred` > DATE_SUB(CURDATE(), INTERVAL 1 DAY);
Run Code Online (Sandbox Code Playgroud)