我与Oracle SQL工作,我有3列的表:Process,Start Date和End 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 的格式间隔
| 归档时间: |
|
| 查看次数: |
120 次 |
| 最近记录: |