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

Giá trị ngày giờ không chính xác Số lỗi cơ sở dữ liệu:1292

Tôi đã phát hiện ra sau khi nâng cấp lên MySQL 5.7 rằng lỗi này bắt đầu xảy ra trong các tình huống ngẫu nhiên, ngay cả khi tôi không cung cấp ngày trong truy vấn.

Điều này có vẻ là do trước đó phiên bản của các ngày được hỗ trợ MySQL như 0000-00-00 00:00:00 (theo mặc định) tuy nhiên 5.7.4 đã giới thiệu một số thay đổi đối với NO_ZERO_DATE thiết lập. Nếu bạn vẫn có dữ liệu cũ khi sử dụng phiên bản MySQL mới hơn, thì các lỗi ngẫu nhiên có thể xuất hiện.

Tôi cần thực hiện một truy vấn như thế này để đặt lại tất cả các ngày bằng 0 thành một ngày khác.

# If the columns supports NULL, use that
UPDATE table SET date_column = NULL WHERE date_column < '1000-01-01';

# Otherwise supply another default date
UPDATE table SET date_column = '1970-01-01' WHERE date_column < '1000-01-01';

Ngoài ra, bạn có thể điều chỉnh NO_ZERO_DATE cài đặt, mặc dù lưu ý những gì tài liệu nói về nó:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP &MySQL:Chuyển đổi TIMESTAMP đã lưu trữ thành múi giờ cục bộ của người dùng

  2. MySQL LOAD DATA INFILE số dòng cửa hàng

  3. Làm cách nào để tôi có thể lặp lại tập kết quả MySQL nhiều lần bằng cách sử dụng các hàm mysql_ *?

  4. Ngày giờ của Ruby phù hợp để so sánh mysql

  5. Quản lý tài khoản người dùng, vai trò, quyền, xác thực PHP và MySQL - Phần 2