Bạn có thể chơi với sql_mode
để thay đổi hành vi cách MySQL xử lý ngày không hợp lệ.
Theo hướng dẫn sử dụng MySQL , điều này xảy ra khi bạn chèn giá trị ngày không chính xác:
Vì vậy, một giá trị 0 được chèn vào và bạn thực sự nhận được cảnh báo về điều đó. Bạn có thể thấy điều đó với show warnings
lệnh.
insert into TableName (`date`) values ('2015-02-29');
-- 1 row(s) affected
show warnings
-- Warning 1264 Out of range value for column 'date' at row 1
Bạn có thể thay đổi hành vi này để lưu trữ giá trị không hợp lệ, nếu cần ( Hướng dẫn sử dụng MySQL ):
Ví dụ, những điều sau sẽ hoạt động:
set @@sql_mode='allow_invalid_dates';
insert into TableName (`date`) values ('2015-02-29');
-- 1 row(s) affected
Hoặc, bạn cũng có thể thay đổi hoạt động của tải dữ liệu hoặc chèn để thông báo lỗi:
Ví dụ:
set @@sql_mode='traditional';
insert into TableName (`date`) values ('2015-02-29');
Error Code: 1292. Incorrect date value: '2015-02-29' for column 'date' at row 1