我正在尝试做这样的事情
v_target_date := trunc (sysdate) - trunc (TO_DATE (iv_target_date, 'DD-MM-YYYY HH:MI AM'));
但我没有得到我想要的东西?我想看看当前sysdate和给定日期之间的区别是什么?所以,如果超过一个月,我应该得到30天以上......
我想根据从给定日期和sysdate传递的天数来应用逻辑。如果它超过48小时(2天),我可以应用逻辑1,否则逻辑2
答案 0 :(得分:0)
如果您只想要48小时的截止时间,我会发现INTERVAL
函数更具可读性。你可以这样做(我已经省略了截断;必要时应用它):
dateMinus48Hours := SYSDATE - INTERVAL '48' HOUR;
IF TO_DATE(iv_target_date, 'DD-MM-YYYY HH:MI AM') < dateMinus48Hours THEN
... more than 48 hours ago
ELSE
... not more than 48 hours ago
END IF;
或者你可以用它;你会得到相同的结果:
dateMinus48Hours := SYSDATE - INTERVAL '2' DAY;
答案 1 :(得分:0)
48小时仅需2天,所以一个简单的选择是:
IF TO_DATE (iv_target_date, 'DD-MM-YYYY HH:MI AM') < SYSDATE - 2 THEN
-- logic 1
ELSE
-- logic 2
END IF;