转换HH:MM:SS

GPH*_*GPH 4 sql sql-server time sql-server-2008

我正在制作一个电话报告但是我遇到了麻烦.我需要计算一个代理人在电话上花了多长时间,源数据是HH:MM:SS的呼叫持续时间.如同在1小时12分10秒内一样几秒钟.因此,如果2个代理人接听了2个电话,那么花费的时间就会计算在那一天.

是否可以将其更改为秒?或者任何人都可以提出更好的建议?

Chr*_*ray 8

时间到秒

假设它是一个时间数据类型,那么您可以像这样更改为秒

DATEDIFF(second, 0, @YourTimeValue)
Run Code Online (Sandbox Code Playgroud)

这是一个简单的聚合示例(即总和)

DECLARE @data TABLE (TimeColumn TIME)
INSERT INTO @data values ('01:12:10'), ('02:15:45')

SELECT SUM(DATEDIFF(SECOND, 0, TimeColumn)) FROM @data
Run Code Online (Sandbox Code Playgroud)

结果是12475秒

秒到时间

我想完成图片以从秒转换回时间格式

SELECT CAST(DATEADD(SECOND, @TotalSecondsValue, 0) AS TIME)
Run Code Online (Sandbox Code Playgroud)

或作为聚合示例的一部分

DECLARE @data TABLE (TimeColumn TIME)
INSERT INTO @data VALUES ('01:12:10'), ('02:15:45')

SELECT CAST(DATEADD(SECOND, SUM(DATEDIFF(SECOND, 0, TimeColumn)), 0) AS TIME) FROM @data
Run Code Online (Sandbox Code Playgroud)

结果的时间是03:27:55