Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL에서 YEAR(2)와 YEAR(4)의 차이점은 무엇입니까?

<시간/>

YEAR(2)는 연도를 2자리 형식으로 저장합니다. 예를 들어 69를 쓰면 1년에 1969를 저장할 수 있습니다. YEAR(2)에는 1970년부터 2069년까지(70~69) 연도를 지정할 수 있습니다.

YEAR(4)는 연도를 4자리 형식으로 저장합니다. 예를 들어, 1969년을 연도로 저장하려면 19669를 써야 합니다. YEAR(4)에서 연도는 1901년에서 2155년까지 지정할 수 있습니다.

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)

00을 'val'에 저장하여 '1900' 또는 '2000'을 의미하는 연도는 불확실합니다. MySQL은 그것을 2000년으로 해석하고 있습니다.