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 | +----+---------------------+