गलत डेटाटाइम मान त्रुटि से बचने के लिए, आप STR_TO_DATE() विधि का उपयोग कर सकते हैं।
जैसा कि हम जानते हैं कि डेटाटाइम प्रारूप YYYY-MM-DD है और यदि आप उसी प्रारूप में सम्मिलित नहीं करेंगे, तो त्रुटि उत्पन्न हो जाएगी।
आइए देखें कि वास्तव में इस त्रुटि का कारण क्या है। इसके लिए हम एक नई तालिका बनाते हैं। तालिका बनाने की क्वेरी इस प्रकार है
mysql> टेबल बनाएं CorrectDatetimeDemo -> ( -> आईडी नॉट न्यूल AUTO_INCREMENT PRIMARY KEY, -> ArrivalTime datetime -> );क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (0.63 सेकंड)
ऐसा तब होता है जब हम गलत डेटाटाइम प्रारूप वाली तारीख शामिल करने का प्रयास करते हैं
mysql> CorrectDatetimeDemo(ArrivalTime) मान ('18/02/2019 11:15:45') में डालें; त्रुटि 1292 (22007):गलत डेटाटाइम मान:'18/02/2019 11:15:45' के लिए कॉलम 'आगमन समय' पंक्ति 1 पर
उपरोक्त त्रुटि से बचने के लिए, आप STR_TO_DATE() का उपयोग कर सकते हैं।
वाक्य रचना इस प्रकार है
आपकेटेबलनाम(yourDateTimeColumnName) VALUES में INSERT करें (STR_TO_DATE('yourDateTimeValue','%d/%m/%Y %H:%i:%s'));
अब, ऊपर दिए गए सिंटैक्स में दिखाए गए अनुसार सही प्रारूप के साथ फिर से डेटाटाइम डालें।
क्वेरी इस प्रकार है
mysql> CorrectDatetimeDemo(ArrivalTime) मानों में डालें(STR_TO_DATE('18/02/2019 11:15:45','%d/%m/%Y %H:%i:%s'));क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.21 सेकंड)mysql> CorrectDatetimeDemo(ArrivalTime) मान (STR_TO_DATE('15/01/2017 10:10:15','%d/%m/%Y %H:%i:% में सम्मिलित करें) s'));क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.16 सेकंड)mysql> CorrectDatetimeDemo(ArrivalTime) मानों में डालें (STR_TO_DATE('12/04/2016 15:30:35','%d/%m/%Y % H:%i:%s'));क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.20 सेकंड)
चयन कथन का उपयोग करके तालिका से सभी रिकॉर्ड प्रदर्शित करें।
क्वेरी इस प्रकार है
mysql> CorrectDatetimeDemo से *चुनें;
निम्न आउटपुट है
<पूर्व>+----+---------------------+| आईडी | आगमन समय |+----+---------------------+| 1 | 2019-02-18 11:15:45 || 2 | 2017-01-15 10:10:15 || 3 | 2016-04-12 15:30:35 |+----+---------------------+3 पंक्तियाँ सेट में (0.00 सेकंड)