34,576
社区成员
发帖
与我相关
我的任务
分享
现有表
time1,time2,tool
time1为开始时间,tim2为结束时间
现要求查询最近八小时里面【每个小时】的使用【分钟总和】和统计【使用次数】
最近八小时查询出来应该是八条记录,查询不到则默认为0
USE tempdb
GO
IF OBJECT_ID('t') IS NOT NULL
DROP TABLE t
GO
CREATE TABLE t
(
time1 DATETIME,
time2 DATETIME,
tool INT
)
GO
INSERT INTO dbo.t VALUES('20210927 16:00','20210927 16:50',2)
INSERT INTO dbo.t VALUES('20210927 17:10','20210927 17:10',2)
INSERT INTO dbo.t VALUES('20210927 17:20','20210927 17:30',2)
SELECT CONVERT(CHAR(13), time1, 120) AS 小时,
SUM(DATEDIFF(minute, time1, time2)) AS 分钟总和,
COUNT(1) AS 使用次数
FROM t
WHERE t.time1 >= DATEADD(hour, -8, GETDATE())
GROUP BY
CONVERT(CHAR(13), time1, 120)
/*
小时 分钟总和 使用次数
2021-09-27 16 50 1
2021-09-27 17 10 2
*/