根据记录创建时间创建直方图

时间:2019-05-23 11:53:49

标签: sql-server

我的系统使用SQL Server2014。它有一个名为Report的表。我想知道大多数报告是在什么时候创建的。该表具有一个名为crateTime的字段,该字段记录创建记录的时间。我有以下说法

select dateadd(minute, datediff(minute, 0, r.createTime), 0), count(*) from Report r
group by dateadd(minute, datediff(minute, 0, r.createTime), 0)

此语句可以产生每分钟的记录计数。但是,我想基于五分钟的间隔进行计数。我该怎么办?

1 个答案:

答案 0 :(得分:2)

尝试:

SELECT DATEADD(minute, DATEDIFF(minute, '', r.createTime)/5*5, ''), count(*)
FROM Report r
GROUP BY DATEADD(minute, DATEDIFF(minute, '', r.createTime)/5*5, ''), 0);

请注意,当指定空字符串而不是零时,将使用默认的datetime值,因此该技术也适用于其他时间类型。