我需要生成一个SQL报告,显示特定事件在一天中每小时的时间段内发生的次数。我的表上有一个日期/时间列,其中包含事件发生的时间。
如何计算白天每小时的行数?
所以我需要看到这样的输出......
10:00 - 11:00 12次
11.00 - 12:00 53次
12:00 - 13:00 5次等
我猜这将是一个Group By,但是你如何按小时分组呢? 提前谢谢。
答案 0 :(得分:4)
SELECT DATEPART(hh, DateTimeColumn), COUNT(*)
FROM
TableName
GROUP BY
DATEPART(hh, DateTimeColumn)
ORDER BY
DATEPART(hh, DateTimeColumn)
答案 1 :(得分:1)
Seans解决方案仅适用于24小时的数据,因为datepart dd仅返回0-23。
如果您需要处理更多,那么您也需要在当天添加。
类似的东西:
SELECT CAST(DateTimeColumn AS INT) [day],DATEPART(hh, DateTimeColumn), COUNT(*)
FROM
TableName
GROUP BY
CAST(DateTimeColumn AS INT),
DATEPART(hh, DateTimeColumn)
ORDER BY
CAST(DateTimeColumn AS INT),
DATEPART(hh, DateTimeColumn