我想问一下我的Mysql语句是否正确..当我在mysql下运行时,它不会返回任何错误,但我无法检索它的行。这是我的发言:
SELECT * FROM timekeeping WHERE createddate = NOW()
这是我的桌子的样子
答案 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