2012-06-21 206 views
0

我想從數據庫中選擇記錄,只要它們匹配今天的日期。數據庫中日期的格式爲2012-06-20 9:30:00我正在使用語句SELECT id FROM新聞報道WHERE DATE(newsdate) = CURDATE()但它不會返回今天的任何記錄嗎?根據今天的日期選擇行

與日期

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

+0

這對我來說很好。你確定目前有新聞嗎? –

+1

什麼是列類型?文本或日期時間? – 2012-06-21 00:56:13

+0

@Gam Erix VARCHAR –

回答

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

或者更好:

DATE(newsdate) = DATE(NOW()) 

的最佳方式是存儲與2001-09-11日期格式附加列和比較這一個

Example,感謝@Conrad Frix

+0

我試了兩種解決方案,也刪除了列的時間部分,所以它只有日期ymd但仍然不起作用 –

+1

@ Mr.1.0工作[罰款](http://sqlfiddle.com/#!2/98c94/1)。 odiszapc隨時在您的答案中包含演示 –

0

它看起來像CURDATE功能將會給你的東西比你在數據庫中已經得到了日期格式不同的列的屏幕截圖。

在文檔看看這裏

MySQL Date and Time Functions

它應該用此格式返回日期:

2008-11-11 

所以,你既可以搜索CURDATE之間的日期範圍( )和curdate()+ INTERVAL 1 DAY(未測試),或以curdate()格式存儲日期。