我有一个带有DATETIME列的MySQL表。我想计算将DATETIME字段设置为当天每小时的条目数。
例如,值为2012-12-18 22:05:20的行将在22:00:00(晚上10点)进入。 2013-09-25 12:29:58的入场时间为12:00:00(中午12点)。我不需要知道日期,条目发生在哪个小时。
我的DATETIME字段称为date_time。关于如何按小时计算参赛作品的任何想法?谢谢!
答案 0 :(得分:3)
有一个函数HOUR
可以完全返回。
所以你可以做类似
的事情select hour(date_time), count(*) from tableName group by hour(date_time)
答案 1 :(得分: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)