时间总和 returns 日期部分

SUM of time returns date part as well

我正在尝试执行 SUM 时间值,但输出呈现为 1900-01-01 05:46:11.740。请注意前面的日期部分 1900-01-01。我只想要时间值。

下面是我尝试过的示例:

DATEADD(MS, SUM(DATEDIFF(MS, '00:00:00.000', R.[Result].value('(/Result/Time/text())[1]', 'datetime'))), '00:00:00.000')

R.[Result].value() 是一个 XML 值,格式为 00:00:00.000

知道我做错了什么吗?

这家伙想计算具有时间数据类型的字段的总和。 这个 post 的答案有一个可能有用的适当解决方案:

select  cast(sum(datediff(second,0,dt))/3600 as varchar(12)) + ':' + 
right('0' + cast(sum(datediff(second,0,dt))/60%60 as varchar(2)),2) +
':' + right('0' + cast(sum(datediff(second,0,dt))%60 as varchar(2)),2)
from    TestTable

参考:Calculate the SUM of the Column which has Time DataType: