我尝试从Oracle数据库中两个时间戳相减的结果中提取出天数、小时数、分钟数和秒数。然后我想将提取出来的值放到单独的列中。我可以使用substr实现这一点,但那似乎不够高效。有没有更高效和程序化的方法来提取这些值?以下是一个示例查询,显示了当前和期望的输出结果。
SELECT
to_timestamp('2019-11-10 15:00:00', 'YYYY-MM-DD hh24:mi:ss') -
to_timestamp('2019-10-25 13:25:00', 'YYYY-MM-DD hh24:mi:ss')
as TIME_DIFF,
SUBSTR(to_timestamp('2019-11-10 15:00:00', 'YYYY-MM-DD hh24:mi:ss') -
to_timestamp('2019-10-25 13:25:00', 'YYYY-MM-DD hh24:mi:ss'), 9, 2)
as DAYS
from dual
当前输出:
TIME_DIFF | DAYS
------------------------------+-----
+000000016 01:35:00.000000000 | 16
期望输出:
DAYS | HOUR | MIN | SS
-----+------+-----+---+
16 | 01 | 35 | 00