ORA-01841: (周)年は-4713と+9999の間の0以外の数字を指定する必要があります
オラクルで以下SQLを発行するとありえない日付でもエラーとはなりません。
SELECT TO_DATE('99991231','YYYYMMDD') FROM DUAL
但しこれに+1すると、「ORA-01841: (周)年は-4713と+9999の間の0以外の数字を指定する必要があります」とエラーが出ます。
SELECT TO_DATE('99991231','YYYYMMDD')+1 FROM DUAL
これは日付の範囲が-4713~9999までの為のようです。その為設計時は99991231の扱いを気にするべきです。
例えば電話の契約開始日、契約終了日をテーブルに持つとします。
電話を契約するに当たり、契約開始日は入るとしても、契約終了日はどうするべきかということです。電話の契約終了日なんて普通決まってませんので、NULLとするべきかですが、NULLにするのならNULL考慮が必要ですし、99991231を入れる、という決め事をすると今回の+1するとエラーになることを考慮しなくてはいけません。
個人的には29991231でいいのでは?と思います。この日付に+1しても30000101になるだけです。
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント