时间的总和也返回日期部分

时间:2015-02-05 08:35:01

标签: tsql sql-server-2012

我尝试执行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()是格式为00:00:00.000

的XML值

知道我做错了吗?

1 个答案:

答案 0 :(得分:1)

这家伙想要计算具有时间数据类型的字段的总和。 这篇文章的答案有一个合适的解决方案,可能会有所帮助:

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: