Oracle中的分数日差异

时间:2014-02-27 11:48:12

标签: sql oracle

我有一个包含2列的表格,EXECUTION_TIMESTAMPEFFECTIVE_DATE作为日期。

我希望两列之间的差异表示为分数天。例如1.5天。

以下是唯一的方法吗?当然必须有更好的方法吗?

select EXECUTION_TIMESTAMP - EFFECTIVE_DATE,
       extract(day from (EXECUTION_TIMESTAMP - EFFECTIVE_DATE))
        +(extract(hour from (EXECUTION_TIMESTAMP - EFFECTIVE_DATE)))/24
        +extract(minute from (EXECUTION_TIMESTAMP - EFFECTIVE_DATE))/1400
        +extract(second from (EXECUTION_TIMESTAMP - EFFECTIVE_DATE))/86400
 from a_table

2 个答案:

答案 0 :(得分:1)

尝试只删除两个值,如

SELECT sysdate - (sysdate -dbms_random.value(1,10)) FROM dual;

答案 1 :(得分:0)

看一下这个例子:

SELECT ROUND(to_date('02/26/2014 05:00:15 PM','MM/DD/YYYY HH:MI:SS AM') - 
             to_date('02/25/2014 06:00:15 AM','MM/DD/YYYY HH:MI:SS AM'),1) Days
FROM DUAL;

它将输出1.5