如何使用oracle sql查找两个日期之间的时差?

时间:2015-09-16 04:47:13

标签: oracle date date-difference

我有一个叫C_Order的表。它有列UPDATEDCREATED。数据类型均为Date,一个样本数据

CREATED = TO_DATE('2015-09-02 14:03:56', 'SYYYY-MM-DD HH24:MI:SS') UPDATED = TO_DATE('2015-09-02 14:07:19', 'SYYYY-MM-DD HH24:MI:SS')

我需要在天,小时和分钟方面区分这两个日期。

我尝试使用DateDiff但它不起作用,我也减去了日期,但我得到的只是0,00123。如何根据天,小时和分钟来计算结果?

3 个答案:

答案 0 :(得分:1)

select date_col1 - date_col2 from table_name;

小时

select
    24 * (date_col1 - date_col2) 
table_name;

分钟

select (date_col1 - date_col2) * 1440
from table_name;

答案 1 :(得分:0)

如果您将两列都投放到timestamp,则从另一列中减去一列的结果为interval

间隔表示以天,小时,分钟和秒为单位的持续时间。

select cast(created as timestamp) - cast(updated as timestamp) 
from the_table;

答案 2 :(得分:0)

找到答案,这是:

SELECT to_number( to_char(to_date('1','J') +
              ("UPDATED" - CREATED), 'J') - 1)  days,
               to_char(to_date('00:00:00','HH24:MI:SS') +
               ("UPDATED" - CREATED, 'HH24:MI:SS') time
        FROM C_ORDER;