【问题标题】:Edit the answer that is returned by my select编辑我的选择返回的答案
【发布时间】:2019-10-07 11:58:17
【问题描述】:

我有一个选择来找出两个日期之间的差异

select  SUBSTR(to_timestamp('19.09.2019 11:26:00', 'dd.mm.yyyy hh24:mi:ss' ) - to_timestamp('01.01.2019 00:00:00' , 'dd.mm.yyyy hh24:mi:ss' ),8, 12) diff 
from dual

我教的答案是正确的

261 11:26:00

有没有可能以某种方式得到这种格式的答案

261 day 11 hour 26 min 00 sec

【问题讨论】:

标签: sql oracle oracle11g intervals


【解决方案1】:

使用EXTRACT 和字符串连接:

SELECT EXTRACT( DAY FROM diff ) || ' days'
       || ' ' || LPAD( EXTRACT( HOUR   FROM diff ), 2, '0' ) || ' hours'
       || ' ' || LPAD( EXTRACT( MINUTE FROM diff ), 2, '0' ) || ' minutes'
       || ' ' || LPAD( EXTRACT( SECOND FROM diff ), 2, '0' ) || ' seconds'
         AS diff
FROM   (
  SELECT TIMESTAMP '2019-09-19 11:26:00' - TIMESTAMP '2019-01-01 00:00:00'
           AS diff 
  FROM   DUAL
)

输出:

|差异 | | :---------------------------------------- | | 261 天 11 小时 26 分 00 秒 |

db小提琴here

【讨论】:

    猜你喜欢
    • 2018-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-20
    • 2020-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多