Điều này thực sự là do chế độ SQL NO_ZERO_DATE
. Bạn nên thấy điều đó khi Anand Rockzz liên kết đến sách hướng dẫn, nhưng liên kết đó chỉ là một nửa của lời giải thích. Kể từ MySQL 5.7.4, cài đặt này không được dùng nữa. Trong ví dụ đầu tiên của bạn, bạn đang thiết lập một ngày; trong lần thứ hai, NO_ZERO_DATE
gây ra sự trả về NULL vì bạn không chỉ định ngày tháng. Bắt đầu với 5.7.8, NO_ZERO_DATE
và NO_ZERO_IN_DATE
đã được bao gồm với giá trị sql_mode mặc định. Theo hướng dẫn sử dụng , có vẻ như việc ngừng sử dụng và xóa đã được hoàn nguyên một phần (bắt đầu với 5.7.8), vì vậy bạn có thể đặt điều này một cách rõ ràng trong my.cnf
của mình (hoặc mỗi phiên).
Bạn cũng nên tham khảo hướng dẫn về NO_ZERO_DATE chỉ thị.