我有一个表,其中有一个名为的列duration。其数据类型为VARCHAR2。
duration
VARCHAR2
我想对这一栏进行总结duration。
00:56:30 02:08:40 01:01:00
总计=> 04:05:10
04:05:10
如何使用ANSI SQL或Oracle SQL执行此操作?
您可以使用来分隔小时,分钟和秒SUBSTR,然后将SUM其向上,最后使用NUMTODSINTERVALfunction将其转换为INTERVALtype。
SUBSTR
SUM
NUMTODSINTERVAL
INTERVAL
SELECT NUMTODSINTERVAL (SUM (total_secs), 'second') FROM (SELECT SUBSTR (duration, 1, 2) * 3600 + SUBSTR (duration, 4, 2) * 60 + SUBSTR (duration, 7, 2) total_secs FROM user_tab);