0

我有桌子叫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 之类的东西。如何以天、小时和分钟计算结果?

4

3 回答 3

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;
于 2015-09-16T05:46:50.123 回答
0

如果将两列都转换为 a timestamp,则从另一列中减去一列的结果是interval

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

select cast(created as timestamp) - cast(updated as timestamp) 
from the_table;
于 2015-09-16T05:55:39.483 回答
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;
于 2015-09-16T06:28:00.227 回答