0

私はこのようなことをしようとしています

 v_target_date := trunc (sysdate) - trunc (TO_DATE (iv_target_date, 'DD-MM-YYYY HH:MI AM'));

しかし、私が探しているものが得られませんか? 現在の sysdate と指定された日付 (日) の違いを知りたいですか? そのため、1か月以上の場合、30日以上かかるはずです...

指定された日付とsysdateからの経過日数に基づいてロジックを適用したい。48 時間 (2 日) を超える場合は、ロジック 1 を適用できます。それ以外の場合はロジック 2 です。

4

2 に答える 2

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;
于 2013-05-15T18:43:28.500 に答える
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;
于 2013-05-16T05:11:50.040 に答える