我有一个包含2列的表格,EXECUTION_TIMESTAMP
,EFFECTIVE_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
答案 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
。