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

Plsql PL/SQL—两个日期之间的天数,plsql,Plsql,我有下面的脚本,我希望脚本只显示两天之间的天数,基本上去掉数字前面的负号。这可能吗 select (TO_DATE(START_DATE, 'DD-MM-YYYY') - TO_DATE(END_DATE, 'DD-MM-YYYY')) AS days From testtable1 输出为: Days -5 -6 etc. 使用ABS: 要转换为绝对值的数字 select ABS(TO_DATE(START_DATE, 'DD-MM-YYYY') - TO_DATE(EN

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

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

From testtable1
输出为:

Days
 -5
 -6
    etc. 
使用ABS:

要转换为绝对值的数字

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

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

开始日期->1994年5月1日和结束日期->1994年5月6日

01-06=-5天

翻转值是您需要的

06-01=5天

希望这对您有所帮助。

使用以下方法:

选择舍入(到日期(到字符(起始日期,'YYYY-MM-DD HH24:MI:SS'),'YYYY-MM-DD HH24:MI:SS')-到日期(到字符(结束日期,'YYYY-MM-DD HH24:MI:SS'),'YYYY-MM-DD HH24:MI:SS'))
从dual

为什么要发布问题,然后自己立即回答?欢迎来到Stack Overflow!请不要只回答源代码。试着提供一个关于你的解决方案如何工作的很好的描述。请参阅:。谢谢
SELECT (TO_DATE('06-05-1994', 'DD-MM-YYYY') - TO_DATE('01-05-1994', 'DD-MM-YYYY')) AS "Days"
FROM DUAL;