sql - oracle中如何总结分钟和秒?

标签 sql oracle

我有一个名为 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/

相关文章:

MYSQL文档语法语法

sql - 如何让SQL查询的结果集为两位数?

php - 排除 Mysql 中的结果,而不是 IN

sql - 从另一个表中替换 select 语句中的一行中的多个标签

sql-server - 适合 Oracle 开发人员/dba 的 SQL Server

sql - 如何向 Oracle 数据库中 CLOB 中包含的 xml 添加属性?

java - 昨天下载到我电脑上的oracle 11db如何获取sql*plus连接?

sql - Oracle:FK 在多个父表中引用 PK

sql - 雪花 SQL : concat values from multiple rows based on shared key

MySQL 表排列