【发布时间】:2018-01-25 21:53:47
【问题描述】:
我想使用区间数据类型获得更具可读性的值。
select cast(last_run_duration as INTERVAL DAY TO SECOND(0))
from dba_scheduler_jobs
order by 1 desc;
这样的查询结果;
+00 00:00:04.630530
+00 00:00:01.352359
+00 00:00:00.737282
+00 00:00:00.594381
+00 00:00:00.432710
我想要的是这个。只得到 Hour:minute:second ;
00:00:04
00:00:01
00:00:00
00:00:00
00:00:00
last_run_duration 列的数据类型是INTERVAL DAY(9) TO SECOND(6)
【问题讨论】:
-
可能不是完全相同的副本,但the second half of this answer 显示了一些选项。
-
看起来你想要
hour to second(0)。 -
@jarlh
cast(last_run_duration as interval hour to second(0)给了我 ORA-00963: unsupported interval type in 12.1.0.2.0. -
您的查询为我提供了 SQL*Plus(Oracle 12.1.0.2.0,客户端 11.2.0.2.0)中的
+00 01:26:24之类的值。转换为INTERVAL DAY(0) TO SECOND(0))会丢失前导零之一。要剥离那些你可以使用substr,如果你知道它永远不会超过一天。如果你想要像36:12:34这样的东西,那就更棘手了。在你的情况下这可能吗?