ORA-01841: (周)年は-4713と+9999の間の0以外の数字を指定する必要があります

ORA-01841: (周)年は-4713と+9999の間の0以外の数字を指定する必要があります

オラクルで以下SQLを発行するとありえない日付でもエラーとはなりません。

但しこれに+1すると、「ORA-01841: (周)年は-4713と+9999の間の0以外の数字を指定する必要があります」とエラーが出ます。

これは日付の範囲が-4713~9999までの為のようです。その為設計時は99991231の扱いを気にするべきです。

例えば電話の契約開始日、契約終了日をテーブルに持つとします。

電話を契約するに当たり、契約開始日は入るとしても、契約終了日はどうするべきかということです。電話の契約終了日なんて普通決まってませんので、NULLとするべきかですが、NULLにするのならNULL考慮が必要ですし、99991231を入れる、という決め事をすると今回の+1するとエラーになることを考慮しなくてはいけません。

個人的には29991231でいいのでは?と思います。この日付に+1しても30000101になるだけです。

関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
Python3.6,Djangoを勉強中です,Javaは少し飽きてしまってます–;
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくば、我に七難八苦を与えたまえ」です^^

スポンサーリンク
  • このエントリーをはてなブックマークに追加
スポンサーリンク

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA