我有一个查询,结果是查询的结果是:
SELECT CONVERT(VARCHAR(8),(MAX(END_TIME)-MIN(START_TIME)),108) as DURATION WHERE ... GROUP BY TITLE
对于每个标题,DURATION
是不同的。查询返回:
DURATION
00:16:14
00:00:00
00:01:30
00:16:25
00:09:34
00:00:01
01:04:04
00:00:28
00:00:12
00:06:11
00:26:38
00:31:44
00:02:16
00:03:22
00:09:39
00:03:20
00:03:43
00:09:33
00:08:05
00:06:58
00:25:29
01:55:30
00:03:02
00:00:18
00:06:09
00:07:26
00:25:43
00:00:16
00:26:58
02:09:38
00:57:56
00:00:45
00:00:00
00:07:24
00:00:54
00:00:27
00:01:28
00:07:14
00:00:19
01:43:25
00:58:23
00:02:29
02:19:48
00:09:06
05:12:15
02:27:15
00:56:47
00:02:24
我需要这些值的总和;我怎么能得到它?
答案 0 :(得分:15)
将分钟转换为秒
SUM()
秒
转换回分钟
以下内容将为您提供秒数的总和:
SET @Seconds = SELECT SUM(DATEDIFF(SECOND, [START_TIME], [END_TIME]))
然后将其转换为datetime
对象:
select convert(varchar(8), dateadd(second, @Seconds, 0), 108)
或作为1个查询:
SELECT convert(varchar(8), dateadd(second, SUM(DATEDIFF(SECOND, [START_TIME], [END_TIME])), 0), 108)
答案 1 :(得分:1)
你无法总结时间。你应该做的是使用DateDiff函数和你的开始和结束时间使用seconds参数。这将返回一个整数数据类型,您可以在其中进行SUM。完成后,将其转换为DateTime,将其格式化为小时:分钟:秒。