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

Mã lỗi MySQL:1411. Giá trị ngày giờ không chính xác:'' cho hàm str_to_date

SQLException không đến trực tiếp từ MySQL, nó có thể được kích hoạt bởi ngôn ngữ máy khách của bạn. MySQL sẽ chỉ tạo ra một cảnh báo mà bạn thường có thể bỏ qua. Dù gì đi nữa, ALLOW_INVALID_DATES Chế độ SQL nên thực sự làm thủ thuật:

Cảnh báo:

mysql> SET @@SESSION.sql_mode='NO_ZERO_DATE,NO_ZERO_IN_DATE';
Query OK, 0 rows affected (0.00 sec)

mysql> insert into test (date_created) VALUES (str_to_date('','%m/%d/%Y'));
Query OK, 1 row affected, 1 warning (0.01 sec)

mysql> show warnings;
+---------+------+-------------------------------------------------------+
| Level   | Code | Message                                               |
+---------+------+-------------------------------------------------------+
| Warning | 1411 | Incorrect datetime value: '' for function str_to_date |
+---------+------+-------------------------------------------------------+
1 row in set (0.00 sec)

Không có cảnh báo:

mysql> SET @@SESSION.sql_mode='ALLOW_INVALID_DATES';
Query OK, 0 rows affected (0.00 sec)

mysql> insert into test (date_created) VALUES (str_to_date('','%m/%d/%Y'));
Query OK, 1 row affected (0.03 sec)

Chỉnh sửa: Nếu bạn đang tìm cách viết lại truy vấn, bạn có thể thử một cái gì đó như sau:

update atable 
set adate=NULL
where anum='1'

Tất nhiên, điều này yêu cầu adate là nullable.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách sao lưu cơ sở dữ liệu MySQL từ dòng lệnh trong Linux

  2. Cơ sở dữ liệu - Thiết kế Bảng sự kiện

  3. Chuyển đổi một ngày trong MySQL từ trường chuỗi

  4. Sự khác biệt giữa MySQL, MySQLi và PDO là gì?

  5. Tìm kiếm số điện thoại trong mysql