Mysql DATETIME评估:获取其值在当天午夜之前的所有记录(基本上是昨天和之前

时间:2013-06-25 21:09:50

标签: mysql

这很简单,但我总是很努力。我需要帮助在午夜之前获取记录:

 AND last_checked < date('2013-06-25 00:00:00'))

这显然不起作用,因为它的字符串评估。我不想将它限制在今年,并在代码中加入。非常感谢任何帮助:)

3 个答案:

答案 0 :(得分:10)

您也可以通用方式执行此操作

AND last_checked < ( DATE(NOW()) + INTERVAL 0 SECOND );

注意:

mysql> SELECT DATE(NOW()) + INTERVAL 0 SECOND Midnight;
+---------------------+
| Midnight            |
+---------------------+
| 2013-06-25 00:00:00 |
+---------------------+
1 row in set (0.00 sec)

mysql>

答案 1 :(得分:3)

你应该能够做到

AND last_checked < '2013-06-25 00:00:00'

使用date()函数只提取参数的日期部分。

答案 2 :(得分:1)

如果last_checked属于datetime数据类型,那么您的WHERE子句将如下所示:

WHERE ... 
    AND cast (last_checked as date) = '2013-06-25'

CAST (datetime as date)会删除时间部分,因此您可以在00h:00m:00s和23h:59m:59s之间轻松获取所有数据。