MySQL :: MySQL 4.1 リファレンスマニュアル :: 6.2.2.2 DATETIME、DATE、TIMESTAMP 型
型名 | DATETIME | DATE |
表示形式 | 'YYYY-MM-DD HH:MM:SS' | 'YYYY-MM-DD' |
サポート範囲 | '1000-01-01 00:00:00'〜'9999-12-31 23:59:59 | '1000-01-01'〜'9999-12-31' |
サポート範囲を越えた値を入力しても、期待通りに作動するかどうかは分からない。
また、MySQL を MAXDB モードで実行している場合、
TIMESTAMP は DATETIME と同じように動作し、
TIMESTAMP カラムの自動更新は行われない。
MySQL の MAXDB モードでの実行は、バージョン 4.1.1 以降で可能となる。
MAXDB モードで実行していないときの TIMESTAMP の動作
TIMESTAMP カラム型では、INSERT または UPDATE 操作に対して現在の日付と時刻を自動的に指定することができる。
TIMESTAMP カラムが複数ある場合は、最初のカラムのみが自動で更新される。
また、日 00-31、月 00-12、年 1000-9999 の有効性に関する
基本チェックのみ実行される。
この範囲外の日付はすべて 0000-00-00 に戻される。
この場合、2002-04-31 のような誤った日付も格納可能であることに注意する。
そのため、04-31をチェックする処理はアプリケーション側で行わなければならない。
ただし、格納するデータの区切りについてはある程度ゆるく、
20111212も2011-12-12も111212も問題なく2011-12-12としてテーブルに格納される。
(一応00-69は21世紀、70-99は20世紀として処理される)