알고 있듯이 YEAR(2)는 연도를 2자리 형식으로 저장합니다. 예를 들어, 1969년을 연도로 저장하려면 69를 쓸 수 있습니다. YEAR(2)에서 연도는 1970년부터 2069년까지 지정할 수 있습니다(70 - 69).
MySQL은 다음 규칙의 도움으로 2자리 연도 값을 해석합니다. −
- 00-69 범위의 연도 값은 2000-2069로 변환됩니다.
- 70-99 범위의 연도 값은 1970-1999년으로 변환됩니다.
날짜 값을 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년으로 해석하고 있습니다.