我有一个名为列的表duration.它的数据类型是VARCHAR2.
我想总结一下这个专栏duration.
00:56:30
02:08:40
01:01:00
Run Code Online (Sandbox Code Playgroud)
总=> 04:05:10
如何使用ANSI SQL或Oracle SQL执行此操作?
Noe*_*oel 10
您可以使用小时,分钟和秒来分隔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);
Run Code Online (Sandbox Code Playgroud)
我认为最好将字符串转换为INTERVAL第一个,并将这些值添加为日期值.有点像:
select to_dsinterval('0 00:56:30')
+ to_dsinterval('0 02:08:40')
+ to_dsinterval('0 01:01:00') myinterval from dual;
MYINTERVAL
-------------------
+000000000 04:06:10
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1073 次 |
| 最近记录: |