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;