时间总和 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:
我正在尝试执行 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: