VARCHAR में संग्रहीत असामान्य दिनांक फॉर्मेट को DATE/DATETIME में पार्स करना
जब दिनांक कॉलम VARCHAR है और फॉर्मेट मानक YYYY-MM-DD नहीं है (जैसे 'April 04 2019'), तो STR_TO_DATE(str, format) से पार्स करें।
सिंटैक्स
SELECT STR_TO_DATE(date_string, format_pattern) FROM yourTable;
उदाहरण: 'Month DD YYYY' फॉर्मेट
CREATE TABLE convertDateDemo (AdmissionDate VARCHAR(200));
INSERT INTO convertDateDemo VALUES
('April 04 2019'), ('May 05 2018'), ('January 01 2012'), ('June 12 2016');
कन्वर्जन क्वेरी
SELECT STR_TO_DATE(AdmissionDate, '%M %e %Y') AS ConvertDate FROM convertDateDemo;
आउटपुट
+---------------------+ | ConvertDate | +---------------------+ | 2019-04-04 00:00:00 | | 2018-05-05 00:00:00 | | 2012-01-01 00:00:00 | | 2016-06-12 00:00:00 | +---------------------+
फॉर्मेट स्पेसिफायर
| स्पेसिफायर | अर्थ | उदाहरण |
|---|---|---|
| %M | पूर्ण महीना नाम | January, April |
| %e | दिन (1-31, स्पेस-पैडेड) | 4, 04 |
| %d | दिन (01-31, शून्य-पैडेड) | 04 |
| %Y | 4-अंकीय वर्ष | 2019 |
| %y | 2-अंकीय वर्ष | 19 |
समय भाग सहित फॉर्मेट
STR_TO_DATE('April 04 2019 10:30:45 PM', '%M %e %Y %h:%i:%s %p')
बेस्ट प्रैक्टिस
- दिनांक कॉलम के लिए हमेशा
DATE/DATETIME/TIMESTAMPटाइप उपयोग करें — VARCHAR नहीं। - माइग्रेशन के दौरान एक बार
STR_TO_DATEसे कन्वर्ट करें, फिरALTER TABLE ... MODIFY COLUMN ... DATEकरें। - अमान्य दिनांक
NULLलौटाते हैं (चेतावनी के साथ)।