我想计算具有时间数据类型的字段的总和。
我的桌子在下面:
TableA: TotalTime ------------- 12:18:00 12:18:00
在这里,我想对两个时间字段求和。我尝试了以下查询
SELECT CAST( DATEADD(MS, SUM(DATEDIFF(MS, '00:00:00.000', CONVERT(TIME, TotalTime))), '00:00:00.000' ) AS TOTALTIME) FROM [TableA]
但是它给出的输出为
TOTALTIME ----------------- 00:36:00.0000000
但是我的期望输出将如下所示:
TOTALTIME ----------------- 24:36:00
如何获得此输出?
您可以求和总计秒数,或datediff(second,0,datecolumn)。您可以使用一些数学将其格式化为时间字符串。例如,总分钟数为totalseconds/ 60 % 60。例如:
datediff(second,0,datecolumn)
totalseconds/ 60 % 60
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
SQL Fiddle上的工作代码。