MySQL में STR_TO_DATE() फ़ंक्शन का उपयोग करके विभिन्न स्ट्रिंग फॉर्मेट को दिनांक में बदलकर डाला जा सकता है।
सिंटैक्स
STR_TO_DATE(string, format)
उदाहरण: 'Jan 2018' फॉर्मेट
तालिका बनाएं:
mysql> CREATE TABLE DemoTable (JoiningYear VARCHAR(20));
mysql> INSERT INTO DemoTable VALUES ('Jan 2018'), ('May 2107'), ('Aug 2019'), ('Oct 2020');
स्ट्रिंग को दिनांक में बदलें
mysql> SELECT STR_TO_DATE(JoiningYear, '%b %Y') FROM DemoTable;
परिणाम
+----------------------------------+
| str_to_date(JoiningYear, '%b %Y') |
+----------------------------------+
| 2018-01-00 |
| 2107-05-00 |
| 2019-08-00 |
| 2020-10-00 |
+----------------------------------+
फॉर्मेट स्पेसिफायर
| स्पेसिफायर | अर्थ | उदाहरण |
|---|---|---|
| %b | संक्षिप्त माह नाम | Jan, Feb, Mar |
| %M | पूर्ण माह नाम | January, February |
| %m | माह संख्या (01-12) | 01, 12 |
| %d | दिन (01-31) | 01, 31 |
| %Y | 4-अंकीय वर्ष | 2018, 2020 |
| %y | 2-अंकीय वर्ष | 18, 20 |
INSERT में उपयोग
INSERT INTO RealTable (JoinDate)
SELECT STR_TO_DATE(JoiningYear, '%b %Y') FROM DemoTable;
पूर्ण दिनांक स्ट्रिंग्स
STR_TO_DATE('20-10-2019', '%d-%m-%Y') -- 2019-10-20
STR_TO_DATE('20/10/2019 14:30', '%d/%m/%Y %H:%i')
STR_TO_DATE('Oct 20, 2019', '%b %d, %Y')
महत्वपूर्ण
- फॉर्मेट स्ट्रिंग सटीक रूप से इनपुट से मेल खाना चाहिए
- मेल न खाने पर NULL लौटाता है
- दिनांक भाग न होने पर (जैसे केवल माह-वर्ष) दिन 00 सेट होता है
- अमान्य दिनांक (Feb 30) पर NULL या त्रुटि (सख्त मोड)