一尘不染

将VARCHAR2转换为Number

sql

我有一个表,其中有一个名为的列duration。其数据类型为VARCHAR2

我想对这一栏进行总结duration

00:56:30
02:08:40
01:01:00

总计=> 04:05:10

如何使用ANSI SQL或Oracle SQL执行此操作?


阅读 396

收藏
2021-03-10

共1个答案

一尘不染

您可以使用来分隔小时,分钟和秒SUBSTR,然后将SUM其向上,最后使用NUMTODSINTERVALfunction将其转换为INTERVALtype。

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);
2021-03-10