ブログBlog

データベースのタイムスタンプと2000年問題

投稿日:2026年10月16日 テクノロジー

お疲れ様です。
河毛絢哉です。
皆さんはデータベースのタイムスタンプの表記を見たことはありますか?
今回はデータベースのタイムスタンプについてのお話です。
データベースのタイムスタンプはの表記は主に年月日と時間を’yy-mm-dd hh:mm:ss.[.fraction]’ という風に表記されています。(例えばブログを書いている今の時間は’26-10-16 20:16:30.146875’という感じに)
このタイムスタンプは主にデータの登録、更新を記録するだけではなく、管理しているコンテンツの表示期限などを作成する際にも使われます。
テストなどでこのタイムスタンプを利用したデータをDBから直接書き換えた場合、値によっては思わぬエラーが起こります。
例えば表示期限がDBのカラムで管理されておりその値が上記のタイムスタンプで登録されたデータがあるとします。
このデータの値を’99-10-16 20:16:30.146875’に書きかえるとどうなるでしょう? これでは2099年までデータが見れると思われますが、対象のデータが見れなくなることがあります。
これはシステムがこのデータの表示期限を1999年だと認識しているからです。
年数が下2桁しか記載しない場合、DBやシステムは基本70-99 の範囲の年の値はを1900年代のものだと認識します。
このようにしている理由は2000年問題への対応とされています。
2000年問題とは2000年を迎えた際にデータの登録や保存したデータの扱いにおいて年月の読み間違いによる誤動作が発生し、世界が混乱を起こす可能性があるということを危惧した内容です。
その対策として上記の69以下の数値の場合は2000、70以上の数字は1900年という扱いをされるそうです。
SQLによる下記替えやDBの設定で2000年代にも判定はできるようですが注意をしなければなりません。
PAGE TOP