STR_TO_DATE() के साथ कस्टम तिथि प्रारूप क्रमबद्ध करना
जब तिथियाँ VARCHAR कॉलम में गैर-मानक प्रारूप में संग्रहीत होती हैं (जैसे "01 August 2019"), तो उन्हें सही ढंग से क्रमबद्ध करने के लिए STR_TO_DATE() फ़ंक्शन का उपयोग करें।
उदाहरण: मिश्रित तिथि प्रारूपों को क्रमबद्ध करना
पहले एक टेबल बनाते हैं जिसमें तिथियाँ टेक्स्ट के रूप में संग्रहीत हैं:
mysql> CREATE TABLE DemoTable1435 (
-> DueDate VARCHAR(60)
-> );
Query OK, 0 rows affected (1.08 sec)
mysql> INSERT INTO DemoTable1435 VALUES
-> ('01 August 2019'), ('01 Feb 2018'),
-> ('31 Jan 2017'), ('01 March 2019');
Query OK, 4 rows affected (0.34 sec)
mysql> SELECT * FROM DemoTable1435;
+----------------+
| DueDate |
+----------------+
| 01 August 2019 |
| 01 Feb 2018 |
| 31 Jan 2017 |
| 01 March 2019 |
+----------------+
4 rows in set (0.00 sec)
STR_TO_DATE() के साथ ORDER BY क्वेरी
%d %M %Y प्रारूप निर्दिष्टकर्ता का उपयोग करें:
mysql> SELECT * FROM DemoTable1435
-> ORDER BY STR_TO_DATE(DueDate, '%d %M %Y');
क्रमबद्ध परिणाम
+----------------+ | DueDate | +----------------+ | 31 Jan 2017 | | 01 Feb 2018 | | 01 March 2019 | | 01 August 2019 | +----------------+ 4 rows in set (0.04 sec)
प्रारूप निर्दिष्टकर्ता समझाया गया
| निर्दिष्टकर्ता | अर्थ | उदाहरण |
|---|---|---|
%d | महीने का दिन (01-31) | 01, 31 |
%M | पूर्ण महीना नाम | January, August |
%Y | 4-अंकीय वर्ष | 2019, 2017 |
सर्वोत्तम अभ्यास
- हमेशा तिथियों के लिए DATE या DATETIME डेटा प्रकार का उपयोग करें
- स्ट्रिंग तिथियों के लिए, क्रमबद्ध करने से पहले STR_TO_DATE() के साथ परिवर्तित करें
- बड़े डेटासेट के लिए, परिवर्तित तिथियों पर एक इंडेक्स बनाने पर विचार करें