Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Sửa lỗi giá trị datetime không hợp lệ khi INSERT vào MySQL

Lỗi "Incorrect datetime value" xảy ra khi định dạng ngày giờ không khớp với chuẩn MySQL (YYYY-MM-DD HH:MM:SS). Dùng STR_TO_DATE() để chuyển đổi.

Tạo bảng:

mysql> CREATE TABLE CorrectDatetimeDemo (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> ArrivalTime DATETIME
    -> );

Thử chèn sai định dạng (ngày/tháng/năm):

mysql> INSERT INTO CorrectDatetimeDemo(ArrivalTime) VALUES('18/02/2019 11:15:45');
ERROR 1292 (22007): Incorrect datetime value: '18/02/2019 11:15:45' for column 'ArrivalTime' at row 1

Sửa bằng STR_TO_DATE():

INSERT INTO yourTableName(yourDateTimeColumnName) VALUES (STR_TO_DATE('yourDateTimeValue', '%d/%m/%Y %H:%i:%s'));

Chèn lại đúng:

mysql> INSERT INTO CorrectDatetimeDemo(ArrivalTime) VALUES(STR_TO_DATE('18/02/2019 11:15:45', '%d/%m/%Y %H:%i:%s'));
mysql> INSERT INTO CorrectDatetimeDemo(ArrivalTime) VALUES(STR_TO_DATE('15/01/2017 10:10:15', '%d/%m/%Y %H:%i:%s'));
mysql> INSERT INTO CorrectDatetimeDemo(ArrivalTime) VALUES(STR_TO_DATE('12/04/2016 15:30:35', '%d/%m/%Y %H:%i:%s'));

Kết quả:

+----+---------------------+
| Id | ArrivalTime         |
+----+---------------------+
|  1 | 2019-02-18 11:15:45 |
|  2 | 2017-01-15 10:10:15 |
|  3 | 2016-04-12 15:30:35 |
+----+---------------------+