where句の日付減算の結果を比較する方法を理解しようとしています。
クライアントはサービスにサブスクライブしているため、終了日を持つサブスクリプションにリンクされています。2週間以内に終了するサブスクリプションのリストを表示したいと思います。私はデータベースを設計しませんでしたが、End_Date列タイプが日付ではなくvarcharであることに気付きました。それを変更することはできません。
私の問題は次のとおりです。たとえば、このリクエストで減算の結果を選択しようとすると、次のようになります。
SELECT(TO_DATE(s.end_date,'YYYY-MM-DD') - TRUNC(SYSDATE)) , s.name
from SUBSCRIPTION s WHERE s.id_acces = 15
これは機能し、サブスクリプションの終了から現在の日付までの日数を教えてくれます。
しかし、ここで、比較のためにまったく同じリクエストを句に含めようとすると、次のようになります。
SELECT s.name
from SUBSCRIPTION S
WHERE (TO_DATE(s.end_date,'YYYY-MM-DD') - TRUNC(SYSDATE)) between 0 and 16
「ORA-01839:指定された月の日付が無効です」というエラーが表示されます。どんな助けもいただければ幸いです。