0

只有当它们与今天的日期匹配时,我才尝试从数据库中选择记录。数据库中日期的格式是2012-06-20 9:30:00我正在使用语句SELECT id FROMnewsreportsWHERE DATE(newsdate) = CURDATE()但它没有返回今天的任何记录?

带有日期的列的屏幕截图

http://img135.imageshack.us/img135/8399/2347f03df0394cd898c7fc5.png

4

2 回答 2

1
DATE_FORMAT(NOW(),'%Y-%m-%d') = FORMAT_DATE(NOW(newsdate), '%Y-%m-%d')

或更好:

DATE(newsdate) = DATE(NOW())

最好的方法是使用2001-09-11日期格式存储附加列并比较这个

示例,感谢@Conrad Frix

于 2012-06-21T00:59:48.840 回答
0

看起来 curdate 函数将为您提供与您在数据库中获得的日期格式不同的东西。

看看这里的文档

MySQL 日期和时间函数

它应该以这种格式返回日期:

2008-11-11

因此,您可以搜索 curdate() 和 curdate() + INTERVAL 1 DAY(未经测试)之间的日期范围,或者以 curdate() 格式存储日期。

于 2012-06-21T00:59:33.007 回答