ご存知のとおり、YEAR(2) は年を 2 桁の形式で保存します。たとえば、69 と書くと、1969 年が年として保存されます。 YEAR(2)には、1970年から2069年(70年から69年)までの年を指定できます。
MySQL は、次のルールを利用して 2 桁の年の値を解釈します。
日付値を 2 桁の形式で保存することはできません。この形式で保存された値は曖昧になるためです。
次の MySQL の例を使用すると、より明確に理解できます。 -
mysql> Create Table year_test(val year(2)); Query OK, 0 rows affected, 1 warning (0.23 sec) mysql> insert into year_test(val) values('70'); Query OK, 1 row affected (0.14 sec) mysql> insert into year_test(val) values('00'); Query OK, 1 row affected (0.06 sec) mysql> select * from year_test; +-----+ | val | +-----+ | 70 | | 00 | +-----+ 2 rows in set (0.00 sec) mysql> select * from year_test where val = '1970'; +-----+ | val | +-----+ | 70 | +-----+ 1 row in set (0.03 sec) mysql> select * from year_test where val = '2000'; +-----+ | val | +-----+ | 00 | +-----+ 1 row in set (0.00 sec) mysql> select * from year_test where val = '1900'; Empty set (0.06 sec)
「val」に 00 を格納すると、「1900」というどの年を参照しているのかがわかりません。または「2000」。 MySQL はこれを 2000 年として解釈します。
以上がMySQL で 2 桁の年の日付値を使用することが推奨されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。