0

今日の日付と一致する場合にのみ、データベースからレコードを選択しようとしています。データベース内の日付の形式は2012-06-20 9:30:00、ステートメントSELECT id FROMnewsreportsを使用していますがWHERE 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 に答える