2011-11-22 92 views
0

我昨天創建了表,並且應該選擇所有行,但是查詢僅返回昨天(20)添加的行,但從今天沒有返回。無法選擇最近7天的行

這是我的表結構:

Followed | Follower | Date (DATETIME) 

這是查詢:

SELECT * FROM Follows 
WHERE Date BETWEEN DATE_SUB(CURDATE(), INTERVAL 7 DAY) AND CURDATE() 
GROUP BY `Followed` 

有沒有辦法選擇的所有行柱7天前,而不是限制他們CURDATE()?我究竟做錯了什麼?

+0

?也許這就是原因。你可以發佈一個db_dump,這樣我們可以檢查。 – pars

回答

0

您可能希望將DATETIME屬性轉換爲DATE與CURDATE()來比較:爲什麼你需要`GROUP BY`

SELECT * FROM Follows 
WHERE cast(Date as DATE) BETWEEN DATE_SUB(CURDATE(), INTERVAL 7 DAY) AND CURDATE() 
GROUP BY `Followed` 
0

這是否工作:

 
WHERE Date BETWEEN CURDATE() - INTERVAL 7 DAY AND CURDATE()