如何从 hh:mm:ss 中的时间数据类型列求和时间?

How to sum times from Time datatype columns in hh:mm:ss?

我有一个 SQL 服务器 table 有 4 列(TIME(0) 数据类型)。

每一行对应一天,所以我有:

Col Time 1 -------- Col Time 2 ------ Col Time 3

'03:23:12' -------- '21:33:04' ------ '07:44:11'
'21:14:45' -------- '12:43:44' ------ '01:56:43'
'15:22:36' -------- '19:33:55' ------ '04:03:11'
'08:21:46' -------- '01:23:14' ------ '06:09:11'

我想 SUM 每一列,这样我就可以获得 总时数、分钟数和秒数 (hh:mm:ss).

因此,例如 Col Time 1 我应该:

48:54:46

首先,你的最终值应该是48:22:19而不是48:54:46
其次,你不能使用TIME类型来接收你想要的结果,因为hh的元素范围是两位数,范围从023,表示小时(More information

这里有一个解决方法,首先您 SUM TIME 列在 内转换每个值,然后分别查找 小时, 分秒 :

SELECT CAST(t.time_sum/3600 AS VARCHAR(2)) + ':'
     + CAST(t.time_sum%3600/60 AS VARCHAR(2)) + ':'
     + CAST(((t.time_sum%3600)%60) AS VARCHAR(2))
FROM ( SELECT SUM(DATEDIFF(S, '00:00:00', col1)) AS time_sum
       FROM tbl) t

SQLFiddle

我找到了更简单的方法..

SEC_TO_TIME(SUM(TIME_TO_SEC(column_name)))