我想使用间隔数据类型获得更具可读性的值。
select cast(last_run_duration as INTERVAL DAY TO SECOND(0))
from dba_scheduler_jobs
order by 1 desc;
Run Code Online (Sandbox Code Playgroud)
查询结果是这样的;
+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
Run Code Online (Sandbox Code Playgroud)
我想要的是这个。只获取小时:分钟:秒;
00:00:04
00:00:01
00:00:00
00:00:00
00:00:00
Run Code Online (Sandbox Code Playgroud)
last_run_duration 列的数据类型是 INTERVAL DAY(9) TO SECOND(6)
INTERAVL DAY TO SECOND有固定的输出格式,TO_CHAR不起作用。
EXTRACT按照 Edumelzer 的建议使用
select lpad(extract(hour from last_run_duration),2,'0')||':'||
lpad(extract(minute from last_run_duration),2,'0')||':'||
lpad(round(extract(second from last_run_duration)),2,'0') as duration
from dba_scheduler_jobs
order by 1 desc;
Run Code Online (Sandbox Code Playgroud)
或者使用像这样的子字符串
select
REGEXP_SUBSTR(last_run_duration, '\d{2}:\d{2}:\d{2}')
from from dba_scheduler_jobs;
Run Code Online (Sandbox Code Playgroud)