我在计算时间戳时遇到困难,如何在不同的时间戳上计算/求和,如下所示
Time (Timestamp in one column)
***********************
0:00:01
0:00:08
0:00:12
0:00:38
0:01:04
2:04:49
15:48:38
23:30:59
7:05:52
8:17:29
我想在hh:mi
中显示总和(时间戳)。有什么帮助吗?
答案 0 :(得分:0)
我可以在postgresql中告诉你,你可以这样做
postgres=# select time '05:00' - time '03:00';
?column?
----------
02:00:00
(1 row)
不知道这对你有多大帮助
答案 1 :(得分:0)
当添加的值为TIME列时,此示例适用于DB2(如原始问题中所示)。诀窍是将时间转换为经过的秒数,这更容易加起来。
WITH origTbl (origTime) AS (VALUES
( TIME( '0:00:01' ) ),
( TIME( '0:00:08' ) ),
( TIME( '0:00:12' ) ),
( TIME( '0:00:38' ) ),
( TIME( '0:01:04' ) ),
( TIME( '2:04:49' ) ),
( TIME( '15:48:38' ) ),
( TIME( '23:30:59' ) ),
( TIME( '7:05:52' ) ),
( TIME( '8:17:29' ) )
)
,
totSeconds( secs ) AS (
SELECT SUM( MIDNIGHT_SECONDS( origTime ) )
FROM origTbl
)
SELECT RTRIM( CHAR( secs/3600 ) ) || ':' ||
LPAD( RTRIM( CHAR( MOD(secs, 3600)/60 ) ), 2, '0' ) || ':' ||
LPAD( RTRIM( CHAR( MOD(secs, 60) ) ), 2, '0' ) AS totHMMSS FROM totSeconds
;
TOTHMMSS
-----------------
56:49:50
1 record(s) selected.