MySQL में किसी तारीख स्ट्रिंग से महीने का संख्यात्मक मान (जैसे 10) के बजाय पूरा महीने का नाम (जैसे October) प्राप्त करने के लिए STR_TO_DATE() और DATE_FORMAT() फ़ंक्शन को संयोजित करें।
सिंटैक्स
SELECT DATE_FORMAT(STR_TO_DATE(date_string, 'input_format'), '%M') FROM table_name;
STR_TO_DATE()- स्ट्रिंग को निर्दिष्ट फॉर्मेट के अनुसारDATEमान में बदलता हैDATE_FORMAT()- तारीख को निर्दिष्ट आउटपुट फॉर्मेट में फॉर्मेट करता है%M- पूरा महीने का नाम (January, February, आदि)
व्यावहारिक उदाहरण
तारीख स्ट्रिंग संग्रहीत करने वाली टेबल बनाएं (DD/MM/YYYY फॉर्मेट में):
mysql> CREATE TABLE DemoTable1320 (MonthName VARCHAR(20));
mysql> INSERT INTO DemoTable1320 VALUES('10/10/2010');
mysql> INSERT INTO DemoTable1320 VALUES('11/12/2018');
mysql> INSERT INTO DemoTable1320 VALUES('12/01/2019');
डेटा देखें:
mysql> SELECT * FROM DemoTable1320;
+------------+ | MonthName | +------------+ | 10/10/2010 | | 11/12/2018 | | 12/01/2019 | +------------+
महीने का नाम निकालने की क्वेरी
mysql> SELECT DATE_FORMAT(STR_TO_DATE(MonthName, '%d/%m/%Y'), '%M') FROM DemoTable1320;
परिणाम
+-----------------------------------------------------+ | DATE_FORMAT(STR_TO_DATE(MonthName, '%d/%m/%Y'), '%M') | +-----------------------------------------------------+ | October | | December | | January | +-----------------------------------------------------+
फॉर्मेट स्पेसिफायर संदर्भ
| स्पेसिफायर | विवरण | उदाहरण |
|---|---|---|
%M | पूरा महीने का नाम | January |
%m | महीना (00-12) | 01 |
%b | संक्षिप्त महीने का नाम | Jan |
%Y | 4-अंकीय वर्ष | 2024 |
%d | दिन (00-31) | 15 |
अन्य उपयोगी फॉर्मेट
'%M %Y'→October 2019'%d %M %Y'→10 October 2010'%W, %M %d, %Y'→Sunday, October 10, 2010
महत्वपूर्ण नोट
STR_TO_DATE() में इनपुट फॉर्मेट आपके संग्रहीत डेटा के फॉर्मेट से **सटीक रूप से मेल खाना चाहिए**। उपरोक्त उदाहरण में डेटा DD/MM/YYYY में है, इसलिए '%d/%m/%Y' उपयोग किया गया है। यदि डेटा YYYY-MM-DD में होता, तो '%Y-%m-%d' उपयोग करते।