我有以下脚本,我希望脚本只显示两天之间的天数,基本上删除数字前面的负号。这可能吗?
select (TO_DATE(START_DATE, 'DD-MM-YYYY') - TO_DATE(END_DATE, 'DD-MM-YYYY')) AS days
From testtable1
输出是:
Days
-5
-6
etc.
答案 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')) 从双重