Computer >> Máy Tính >  >> Lập trình >> MySQL

Sự khác biệt giữa YEAR (2) và YEAR (4) trong MySQL là gì?

YEAR (2) lưu trữ một năm ở định dạng 2 chữ số. Ví dụ, chúng ta có thể viết 69 để lưu trữ 1969 một năm. Trong NĂM (2), năm có thể được chỉ định từ 1970 đến 2069 (70 đến 69).

YEAR (4) lưu trữ một năm ở định dạng 4 chữ số. Ví dụ, chúng ta cần viết 19669 để lưu trữ 1969 là một năm. Trong YEAR (4), năm có thể được chỉ định từ 1901 đến 2155.

MySQL diễn giải các giá trị năm gồm 2 chữ số với sự hỗ trợ của các quy tắc sau:

  • Các giá trị năm trong phạm vi 00-69 được chuyển đổi thành 2000-2069.
  • Các giá trị năm trong phạm vi 70-99 được chuyển đổi thành 1970-1999.

Chúng tôi không được lưu trữ các giá trị ngày tháng ở định dạng 2 chữ số vì các giá trị được lưu trữ ở định dạng này trở nên mơ hồ do không xác định được thế kỷ.

Nó có thể được hiểu rõ ràng hơn với sự trợ giúp của ví dụ MySQL sau -

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)

Không chắc chắn rằng năm mà chúng tôi gọi là "1900" hay "2000", bằng cách lưu trữ 00 thành "val". MySQL đang hiểu nó là năm 2000.