2013-09-26 80 views
0

我有一個DATETIME列的MySQL表。我想統計DATETIME字段設置爲當天的每個小時的條目數。MySQL按小時計數DATETIME條目

例如,值爲2012-12-18 22:05:20的行將在22:00:00(晚上10點)登入。 2013-09-25 12:29:58入場時間爲12:00:00(12pm)。我不需要知道日期,只是在哪個小時發生。

我的DATETIME字段被稱爲date_time。有關如何按小時統計入場的任何想法?謝謝!

回答

3

有一個函數HOUR,返回這個。

所以你可以做這樣的事情

select hour(date_time), count(*) from tableName group by hour(date_time) 

sqlfiddle

1

像這樣的東西應該工作:

SELECT DATEADD(HH,DATEDIFF(HH,0,date_time),0) AS dt_hour, COUNT(*) AS cnt 
FROM tbl 
GROUP BY DATEADD(HH,DATEDIFF(HH,0,date_time),0) 

有效發現的零日和你DATE_TIME場之間的小時數,然後添加數個小時零日期。這剝離任何分鐘和秒,但離開日期和小時。這使您可以按小時計算每天...

更新: 當我讀到您的問題時,我錯過了關於實際日期不重要的一點。 MySQL有一個名爲HOUR()的函數,它將從DATETIME值返回小時。所以你可以做到這一點:

SELECT HOUR(date_time) AS dt_hour, COUNT(*) AS cnt 
FROM tbl 
GROUP BY HOUR(date_time)