Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Giá trị DateTime không chính xác '0000-00-00 00:00:00' - Date_Sub () trong Có

Tùy chọn đầu tiên:

Cảnh báo này có thể là do SQL_MODE .

Theo tài liệu mysql "Nếu chế độ SQL NO_ZERO_DATE hoặc NO_ZERO_IN_DATE được bật, không có ngày hoặc một phần của ngày không được phép.". Vì vậy, đây có thể là nguyên nhân INSERT của bạn với '0000-00-00 00:00:00' không thành công.

Bạn có thể kiểm tra chế độ sql của mình bằng cách thực hiện điều này:

SELECT @@sql_mode;

và nếu có bất kỳ NO_ZERO_DATE nào hoặc NO_ZERO_IN_DATE được thiết lập, sau đó bạn chỉ có thể:

SET sql_mode = '';

Tùy chọn thứ hai

Tùy chọn khác không thành công do STRICT_TRANS_TABLES mode. Như tài liệu mysql nói:

Điều này cũng hợp lệ cho datetime.

Vì vậy, bạn phải tắt CHẾ ĐỘ NGHIÊM TÚC HOẶC nếu vô hiệu hóa nó không phải là một tùy chọn - hãy sửa đổi truy vấn để nó không trả về kết quả ngày / giờ không hợp lệ



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:Chọn các bản ghi có các điều kiện áp dụng cho nhiều hàng

  2. Codeigniter, mysql, select_max và thêm 1 trước khi chèn một bản ghi khác

  3. lưu trữ số âm trong trường thập phân của bảng mysql kể từ phiên bản 5.0.3

  4. Cách cấp tất cả các đặc quyền cho người dùng root trong MySQL 8.0

  5. Cách sử dụng MySQL Rollup