YEAR
型は年の値を表すために使用される 1 バイトの型です。これは YEAR(4)
または YEAR(2)
と宣言して、4 文字または 2 文字の表示幅を指定できます。幅が指定されていない場合、デフォルトは 4 文字になります。
YEAR(2)
データ型には、使用する前に考慮する必要のある特定の問題があります。また、MySQL 5.6.6 以降では、YEAR(2)
は非推奨です。既存のテーブル内の YEAR(2)
カラムは以前のとおりに扱われますが、新規または変更したテーブルでは YEAR(2)
は YEAR(4)
に変換されます。詳細は、セクション11.3.4「YEAR(2) の制限と YEAR(4) への移行」を参照してください。
YEAR(4)
と YEAR(2)
は表示形式が異なりますが、値の範囲は同じです。4 桁の形式の場合、MySQL は、YYYY
の形式と 1901
から 2155
、または 0000
の範囲で、YEAR
値を表示します。2 桁形式の場合、MySQL は、70
(1970 または 2070) や 69
(2069) など、最後 (最下位) の 2 桁だけを表示します。
YEAR
の入力値は、次に示すさまざまな形式で指定できます。
1901
から2155
の範囲の 4 桁の数値として。'1901'
から'2155'
の範囲の 4 桁の文字列として。1
から99
の範囲の 1 桁または 2 桁の数値として。MySQL は、1
から69
と70
から99
の範囲の値を、2001
から2069
と1970
から1999
の範囲のYEAR
値に変換します。'0'
から'99'
の範囲の 1 桁または 2 桁の文字列として。MySQL は、'0'
から'69'
と'70'
から'99'
の範囲の値を、2000
から2069
と1970
から1999
の範囲のYEAR
値に変換します。数値
0
を挿入した場合、その効果はYEAR(2)
とYEAR(4)
で異なります。YEAR(2)
の場合、00
の表示値と2000
の内部値の結果になります。YEAR(4)
の場合、0000
の表示値と0000
の内部値の結果になります。YEAR(4)
にゼロを指定し、これを2000
として解釈させるには、文字列'0'
または'00'
としてこれを指定します。NOW()
などのYEAR
コンテキストで許容される値を返す関数の結果として。
MySQL は無効な YEAR
値を 0000
に変換します。
セクション11.3.8「日付での 2 桁の年」も参照してください。