Oracle中的小数天差

bqucvtff  于 2023-06-22  发布在  Oracle
关注(0)|答案(3)|浏览(73)

我有一个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
pobjuy32

pobjuy321#

试着减去这两个值

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

mbjcgjjk2#

看一下这个例子:

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

wj8zmpe1

wj8zmpe13#

如果你使用时间戳,你需要将它们转换为日期,例如。ROUND(CAST(timestamp1 as DATE) - CAST(timestamp2 as DATE), 1)

相关问题