繁体   English   中英

MySQL按小时计数DATETIME条目

[英]MySQL Count DATETIME Entries by Hour

我有一个带有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。 关于如何按小时计数条目的任何想法? 谢谢!

有一个函数HOUR恰好返回该函数。

所以你可以做类似的事情

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

sqlfiddle

这样的事情应该起作用:

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM