我有一个名为 duration_d
的列,它是 varchar2
,该表中的数据如下所示
duration_d
-----------
12:25
01:35
12:10
04:21
12:18
12:24
我尝试了以下查询
SELECT SUM( to_date( duration_d, 'mi:ss' ))
FROM table
GROUP BY calling_number;
当我执行它时,出现以下错误
ORA-00933: SQL command not properly ended
00933. 00000 - "SQL command not properly ended"
谁能告诉我如何求和吗?
最佳答案
要获取一天中的总分数,您可以使用:
SELECT SUM( TO_DATE( duration_d, 'MI:SS' ) - TO_DATE( '00:00', 'MI:SS' ) ) AS total
FROM your_table
这给出了结果:
TOTAL
------------------------------------------
0.0383449074074074074074074074074074074074
要将其转换为间隔数据类型,您可以使用NUMTODSINTERVAL
:
SELECT NUMTODSINTERVAL(
SUM( TO_DATE( duration_d, 'MI:SS' ) - TO_DATE( '00:00', 'MI:SS' ) ),
'DAY'
) AS total
FROM your_table
这给出了结果:
TOTAL
-------------------
+00 00:55:13.000000
关于sql - oracle中如何总结分钟和秒?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45478614/