我有一個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。有關如何按小時統計入場的任何想法?謝謝!
我有一個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。有關如何按小時統計入場的任何想法?謝謝!
像這樣的東西應該工作:
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)