世紀が不明であるため、年が 2 桁の日付値はあいまいです。 MySQL では 4 桁を使用して内部的に年が格納されるため、このような値は 4 桁の形式に解釈する必要があります。
DATETIME
、DATE
、および TIMESTAMP
型では、MySQL は、次のルールを使用して、あいまいな年の値で指定された日付を変換します。
00-69
の範囲内の年の値は2000-2069
になります。70-99
の範囲内の年の値は1970-1999
になります。
YEAR
ではルールは同じですが、YEAR
に挿入された数値 00
は 2000
ではなく 0000
になります。 YEAR
にゼロを指定し、これを 2000
として解釈させるには、文字列 '0'
または '00'
としてこれを指定します。
これらのルールは、データ値が何を表すかを妥当に推測する単なる経験則であることを覚えておいてください。 MySQL で使用されるルールで必要な値が生成されない場合は、4 桁の年の値を含む明確な入力を指定する必要があります。
ORDER BY
では、年が 2 桁の YEAR
値が適切にソートされます。
MIN()
や MAX()
などの一部の関数は、YEAR
を数値に変換します。 つまり、年が 2 桁の値は、これらの関数では正しく機能しません。 この場合の修正は、YEAR
を 4 桁の年形式に変換することです。