我的系统使用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)
此语句可以产生每分钟的记录计数。但是,我想基于五分钟的间隔进行计数。我该怎么办?
答案 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值,因此该技术也适用于其他时间类型。