多天之间人类可读的经过时间

Nik*_*nov 6 sql oracle

我与Oracle SQL工作,我有3列的表:Process,Start DateEnd Date.我想计算每个过程的持续时间.

我用过这个查询:

select 
(enddate.date_value - startdate.date_value) as duration
from dual
Run Code Online (Sandbox Code Playgroud)

结果是几天.

例如:开始日期是30.3.2016 17:14:53和结束日期8.7.2016 14:51:21

当我使用查询时,结果是99.90032407407407407407407407407407407407,但我想要这样的结果: 3 months, 7 days, 21 hours, 36 minutes, 28 seconds.

我怎样才能做到这一点?

小智 1

DATE两个值之间的差值number代表天数。您似乎想要一个interval,这可以使用值来完成TIMESTAMP

select cast(enddate as timestamp) - cast(startdate as timestamp)
from the_table
Run Code Online (Sandbox Code Playgroud)

a减去timestampatimestamp的结果就是一个区间。

然而,在 Oracle 中,值的格式化interval相当棘手。请参阅例如使用 to_char 的格式间隔