2012-03-13 90 views

回答

5
select day(Date), count(*) 
from table 
where month(Date) = month(NOW()) and year(Date) = year(NOW()) 
group by day(Date) 

「where」子句選擇當前月份。您可以使用count(whatever)count(distinct whatever)代替count(*) ......

+0

可能會更好地使用日期範圍,因爲'month(date)'和'year(dat e)'不會被編入索引。 – 2012-03-14 00:36:24

+0

像這樣,你不會得到所有的日子,只有在數據庫中的記錄。有沒有辦法得到所有的日子,如果沒有記錄,得到0? – Alvaro 2013-01-16 11:43:33

+0

@Steve,實際上是一個很好的問題,在編碼過程中我遇到過很多次......我想最好的解決方案是在表示層以外的SQL之外完成這個工作。 – TMS 2013-01-16 13:00:36

0

事情是這樣的僞代碼:

SELECT Day, COUNT(*) 
FROM XXX_Users 
GROUP BY "date extracted from datetime" as Day 

要提取的日期時間,你可以使用DATE函數日期:

SELECT Day, COUNT(*) 
FROM XXX_Users 
GROUP BY DATE(created) as Day 

或者你可以創建一個存儲過程來包含所有的邏輯

相關問題