所以我用了this作为引用发布,但我想根据 15 分钟的时间段计算所有行。
这是我目前所拥有的:
SELECT DateAdd(minute, DateDiff(minute, 0, [datetime]), 0) as Timestamp,
Count(*) as Tasks
FROM [table]
GROUP BY DateAdd(minute, DateDiff(minute, 0, [datetime]), 0)
ORDER BY Timestamp
这非常适合每分钟获取行数,但是我需要 15 分钟... 所以我改变:
DateAdd(分钟, DateDiff(分钟, 0, [日期时间]), 0)
到
DateAdd(分钟, DateDiff(分钟, 0, [datetime]), 15)
然而,这只是将日期提前了 15 天。
感谢任何帮助!
最佳答案
要得到 15 分钟,除以 15(然后再乘以):
SELECT DateAdd(minute, 15*(DateDiff(minute, 0, [datetime]) / 15), 0
) as Timestamp,
Count(*) as Tasks
FROM [table]
GROUP BY (DateDiff(minute, 0, [datetime]) / 15)
ORDER BY Timestamp;
SQL Server 进行整数除法。如果您想明确表达自己的意图,请使用 FLOOR()
。
关于SQL按时间间隔查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33487200/