PL / SQL - 两个日期之间的天数

时间:2016-03-01 20:27:19

标签: plsql

我有以下脚本,我希望脚本只显示两天之间的天数,基本上删除数字前面的负号。这可能吗?

select (TO_DATE(START_DATE, 'DD-MM-YYYY') - TO_DATE(END_DATE, 'DD-MM-YYYY')) AS days 

From testtable1

输出是:

Days
 -5
 -6
    etc. 

3 个答案:

答案 0 :(得分:4)

SELECT (TO_DATE('06-05-1994', 'DD-MM-YYYY') - TO_DATE('01-05-1994', 'DD-MM-YYYY')) AS "Days"
FROM DUAL;

此查询返回负值的原因是因为您正在以相反的方式进行计算。让我们以上面的查询为例;

开始日期 - > 01-05-1994&&结束日期 - > 1994年6月5日

01 - 06 = -5天

根据您的需要翻转价值

06 - 01 = 5天

希望您觉得这很有帮助。

答案 1 :(得分:1)

使用ABS:

要转换为绝对值的数字。

select ABS(TO_DATE(START_DATE, 'DD-MM-YYYY') - TO_DATE(END_DATE, 'DD-MM-YYYY')) AS days 

From testtable1

答案 2 :(得分:0)

使用此:

SELECT ROUND(TO_DATE(TO_CHAR(StartDate,'YYYY-MM-DD HH24:MI:SS'),'YYYY-MM-DD HH24:MI:SS')-TO_DATE(TO_CHAR(EndDate,'YYYY-MM -DD HH24:MI:SS','YYYY-MM-DD HH24:MI:SS')) 从双重