MySQL-এ ডেটাটাইম ইনসার্ট করার সময় ভুল ফরম্যাট (যেমন DD/MM/YYYY) দিলে ERROR 1292: Incorrect datetime value ত্রুটি হয়। এড়তে STR_TO_DATE() ফাংশন ব্যবহার করুন।
সমস্যা
টেবিল তৈরি:
mysql> CREATE TABLE CorrectDatetimeDemo (
-> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> ArrivalTime DATETIME
-> );
ভুল ফরম্যাটে ইনসার্ট করলে এরর:
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'
সমাধান: STR_TO_DATE()
সিনট্যাক্স:
INSERT INTO yourTable(yourDateTimeColumn) VALUES (STR_TO_DATE('yourDateTimeValue', '%d/%m/%Y %H:%i:%s'));
সঠিক ফরম্যাটে ইনসার্ট:
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'));
ফলাফল (MySQL স্ট্যান্ডার্ড YYYY-MM-DD HH:MM:SS ফরম্যাটে):
mysql> SELECT * FROM CorrectDatetimeDemo;
+----+---------------------+ | Id | ArrivalTime | +----+---------------------+ | 1 | 2019-02-18 11:15:45 | | 2 | 2017-01-15 10:10:15 | | 3 | 2016-04-12 15:30:35 | +----+---------------------+
ফরম্যাট স্পেসিফায়ার: %d=দিন, %m=মাস, %Y=৪-ডিজিট বছর, %H=ঘণ্টা (২৪-ঘণ্টা), %i=মিনিট, %s=সেকেন্ড।