2013-08-04 53 views
0

想知道是否有愛好者可以幫助我。我試圖讓兩個日期之間的記錄數,我用一些帖子,我發現就在這裏做這個查詢很簡單,它總是返回02個日期之間的返回行數總是返回0

DATE_ADDED是時間戳

SELECT COUNT(id) 
FROM item 
WHERE date_added >= DATE_SUB(CURDATE(), INTERVAL 30 DAY) AND date_added <= NOW() 

我也試過這個:

SELECT COUNT(id) 
FROM item 
WHERE date_added BETWEEN DATE_SUB(CURDATE(), INTERVAL 30 DAY) AND NOW() 

我在做什麼錯?

+1

爲什麼你使用'CURDATE()'作爲開始日期,'NOW()'作爲結尾?另外,你的'date_added'列是什麼數據類型? –

+0

@KenWhite我想我只是嘗試不同的功能,當我發現它不會按預期工作。兩種方式都行不通。 – Jonnny

+0

@KenWhite啊,timestamp(),我覺得這可能是一個問題。 – Jonnny

回答

0

今天早上我重新運行了這個查詢,它工作的很好,所以我不確定昨晚除了小時以外哪裏出了問題。感謝大家的意見。

SELECT COUNT(id) 
FROM item 
WHERE date_added BETWEEN DATE_SUB(CURDATE(), INTERVAL 30 DAY) AND CURDATE() 

工作的罰款象

SELECT COUNT(id) 
FROM item 
WHERE DATE(date_added) BETWEEN DATE_SUB(CURDATE(), INTERVAL 30 DAY) AND CURDATE() 

希望,可能是使用的人。

2

使用DATE(NOW())和DATE(date_added)來比較mysql中的日期。它會給你日期的一部分時間戳。

對於實施例 CURDATE()是2008-11-11和 NOW()是2008-11-11 12點45分34秒

一個是日期,另一個是時間戳。您應該採取兩個日期或兩個時間戳。我上面告訴過的一個解決方案。