现在基于日期的mysql语句(SELECT)

时间:2014-05-02 14:25:20

标签: mysql sql select

我想问一下我的Mysql语句是否正确..当我在mysql下运行时,它不会返回任何错误,但我无法检索它的行。这是我的发言:

SELECT * FROM timekeeping WHERE createddate = NOW()

这是我的桌子的样子

enter image description here

5 个答案:

答案 0 :(得分:3)

MySQL compare now() (only date, not time) with a datetime field

试试这个:

SELECT * FROM timekeeping WHERE DATE(createddate) = DATE(NOW());

答案 1 :(得分:1)

createddate = NOW()很可能是一个精确的时间比较,你可能只对年,月,日感兴趣。

请参阅此处了解如何执行您要执行的操作的详细信息:

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

答案 2 :(得分:1)

可能你想搜索今天的日期。 试试这个:

SELECT * FROM timekeeping WHERE DATE(createddate) = DATE(NOW());

答案 3 :(得分:0)

now()包括时间。鉴于您的字段包含日期和时间值,如果日期和时间完全匹配,您将只获得匹配。您只需要比较日期:

... WHERE DATE(createddate) = CUR_DATE()
               '2014-05-02' = '2014-05-02'

v.s。

... WHERE createddate = now()
'2014-05-02 22:14:00' = '2014-05-02 01:02:03'

答案 4 :(得分:0)

我的猜测是,这并不是你想要的:NOW()函数将返回查询运行时的确切时间戳,这意味着你要求它在那个确切时刻创建的任何记录

您可能想尝试更多类似的内容:

SELECT * FROM timekeeping WHERE createddate = YOUR_DATE_CRITERIA