STR_TO_DATE और DATE_FORMAT के साथ डेट फॉर्मेट परिवर्तन
स्ट्रिंग डेट को पार्स करने के लिए STR_TO_DATE() और फिर 원하는 फॉर्मेट में आउटपुट करने के लिए DATE_FORMAT() का उपयोग करें।
आइए पहले एक टेबल बनाते हैं:
mysql> CREATE TABLE DemoTable (
DueDate VARCHAR(100)
);
रिकॉर्ड इन्सर्ट करें:
mysql> INSERT INTO DemoTable VALUES ('August 04,2019');
रिकॉर्ड देखें:
mysql> SELECT * FROM DemoTable;
आउटपुट:
+----------------+ | DueDate | +----------------+ | August 04,2019 | +----------------+
डेट फॉर्मेट बदलने के लिए क्वेरी (स्ट्रिंग को डेट में पार्स करें, फिर YYYY-MM-DD फॉर्मेट में फॉर्मेट करें):
mysql> SET @stringToDate = (
SELECT DATE_FORMAT(STR_TO_DATE(DueDate, '%M %d,%Y'), '%Y-%m-%d')
FROM DemoTable
);
परिणाम देखें:
mysql> SELECT @stringToDate;
आउटपुट:
+---------------+ | @stringToDate | +---------------+ | 2019-08-04 | +---------------+
व्याख्या:
- STR_TO_DATE(DueDate, '%M %d,%Y'): स्ट्रिंग 'August 04,2019' को डेट ऑब्जेक्ट में पार्स करता है
%M- पूर्ण महीना नाम (August)%d- दिन (04)%Y- 4-अंकीय वर्ष (2019)
- DATE_FORMAT(..., '%Y-%m-%d'): डेट ऑब्जेक्ट को ISO फॉर्मेट (YYYY-MM-DD) में फॉर्मेट करता है
%Y- 4-अंकीय वर्ष%m- 2-अंकीय महीना%d- 2-अंकीय दिन
सामान्य डेट फॉर्मेट स्पेसिफायर्स:
| स्पेसिफायर | अर्थ | उदाहरण |
|---|---|---|
| %Y | 4-अंकीय वर्ष | 2019 |
| %y | 2-अंकीय वर्ष | 19 |
| %M | पूर्ण महीना नाम | August |
| %m | 2-अंकीय महीना | 08 |
| %d | 2-अंकीय दिन | 04 |
| %H | घंटा (24-घंटा) | 14 |
| %i | मिनट | 30 |
| %s | सेकंड | 59 |
सीधे कॉलम पर लागू करना:
SELECT DATE_FORMAT(STR_TO_DATE(DueDate, '%M %d,%Y'), '%Y-%m-%d') AS formatted_date FROM DemoTable;