MySQL में SUBSTRING_INDEX() फ़ंक्शन का उपयोग करके स्ट्रिंग के अंतिम भाग से दिनांक निकाल सकते हैं जब दिनांक एक ज्ञात विभाजक के बाद आता है।
सिंटैक्स
SUBSTRING_INDEX(SUBSTRING_INDEX(स्ट्रिंग, विभाजक, -1), विभाजक, 1)
उदाहरण: 'लेबल.दिनांक' प्रारूप से दिनांक निकालना
1. टेबल बनाएं
mysql> CREATE TABLE DemoTable (
-> Title TEXT
-> );
2. डेटा डालें
mysql> INSERT INTO DemoTable VALUES('John has got joining date.12/31/2018');
mysql> INSERT INTO DemoTable VALUES('Carol has got joining date.01/11/2019');
mysql> INSERT INTO DemoTable VALUES('Sam will arrive at.12/03/2050');
3. डेटा देखें
mysql> SELECT * FROM DemoTable;
+---------------------------------------+ | Title | +---------------------------------------+ | John has got joining date.12/31/2018 | | Carol has got joining date.01/11/2019 | | Sam will arrive at.12/03/2050 | +---------------------------------------+
4. दिनांक निकालें
mysql> SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(Title, '.', -1), '.', 1)
-> FROM DemoTable;
5. परिणाम
+----------------------------------------------------------+ | substring_index(substring_index(Title,".", -1), ".", 1) | +----------------------------------------------------------+ | 12/31/2018 | | 01/11/2019 | | 12/03/2050 | +----------------------------------------------------------+
कैसे काम करता है
SUBSTRING_INDEX(Title, '.', -1)- अंतिम बिंदु के बाद का भागSUBSTRING_INDEX(..., '.', 1)- पहले बिंदु से पहले का भाग (यहां कोई बिंदु नहीं, इसलिए पूरा स्ट्रिंग)
बेहतर विकल्प (MySQL 8.0+)
-- REGEXP_SUBSTR का उपयोग
SELECT REGEXP_SUBSTR(Title, '[0-9]{2}/[0-9]{2}/[0-9]{4}') FROM DemoTable;
-- या CAST के साथ दिनांक प्रकार में बदलें
SELECT CAST(REGEXP_SUBSTR(Title, '[0-9]{2}/[0-9]{2}/[0-9]{4}') AS DATE) FROM DemoTable;
नोट
यह विधि निश्चित पैटर्न पर निर्भर करती है। अनियमित डेटा के लिए रेगुलर एक्सप्रेशन या एप्लिकेशन-लेवल पार्सिंग बेहतर है।