2

我需要生成一个 SQL 报告,显示一天中每个小时内特定事件发生的次数。我的表上有一个日期/时间列,其中包含事件发生的时间。

如何计算一天中每个小时内的行数?

所以我需要看到这样的输出......

10:00 - 11:00 12 次

11.00 - 12:00 53 次

12:00 - 13:00 5 次等

我猜这将是一个分组依据,但你如何按小时分组?提前致谢。

4

2 回答 2

4
SELECT DATEPART(hh, DateTimeColumn), COUNT(*)
FROM
    TableName
GROUP BY
    DATEPART(hh, DateTimeColumn)
ORDER BY
    DATEPART(hh, DateTimeColumn)
于 2009-01-30T15:05:56.960 回答
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
于 2009-01-30T15:16:54.537 回答