Kiểu DATE trong MySQL hỗ trợ phạm vi từ 1000-01-01 đến 9999-12-31, phù hợp cho ngày trước 1970 (khác với TIMESTAMP chỉ từ 1970).
Phạm vi DATE
- Ngày nhỏ nhất:
1000-01-01 - Ngày lớn nhất:
9999-12-31 - Định dạng:
YYYY-MM-DD
Ví dụ minh họa
Tạo bảng:
mysql> CREATE TABLE DateDemo (
-> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> DateBefore1970 DATE
-> );
Chèn các ngày lịch sử:
mysql> INSERT INTO DateDemo(DateBefore1970) VALUES('1000-10-20');
mysql> INSERT INTO DateDemo(DateBefore1970) VALUES('1940-12-31');
mysql> INSERT INTO DateDemo(DateBefore1970) VALUES('1500-01-25');
mysql> INSERT INTO DateDemo(DateBefore1970) VALUES('1900-04-14');
mysql> INSERT INTO DateDemo(DateBefore1970) VALUES('1710-11-15');
mysql> INSERT INTO DateDemo(DateBefore1970) VALUES('9999-12-31');
mysql> INSERT INTO DateDemo(DateBefore1970) VALUES('10000-12-31'); -- vượt phạm vi
Kết quả (ngày vượt phạm vi thành 0000-00-00):
+----+----------------+ | Id | DateBefore1970 | +----+----------------+ | 1 | 1000-10-20 | | 2 | 1940-12-31 | | 3 | 1500-01-25 | | 4 | 1900-04-14 | | 5 | 1710-11-15 | | 6 | 9999-12-31 | | 7 | 0000-00-00 | +----+----------------+
Lưu ý quan trọng:
- Kiểu
DATETIMEcũng có phạm vi tương tự DATE (1000-9999) - Kiểu
TIMESTAMPchỉ từ 1970-01-01 đến 2038-01-19 (giới hạn 32-bit) - Ngày
0000-00-00là giá trị "zero date" khi dữ liệu không hợp lệ - Có thể dùng
SQL_MODE='NO_ZERO_DATE'để từ chối giá trị này