MySQL में STR_TO_DATE() फंक्शन का उपयोग करके दिनांक स्ट्रिंग को मानक DATE फॉर्मेट (YYYY-MM-DD) में बदल सकते हैं।
सिंटैक्स
SELECT STR_TO_DATE(yourDateColumnName, '%d.%m.%Y') AS formatted_date FROM yourTableName;
फॉर्मेट स्पेसिफायर
%d- दिन (01-31)%m- महीना (01-12)%Y- 4 अंकों का वर्ष%y- 2 अंकों का वर्ष
उदाहरण के साथ समझें
टेबल बनाएं:
CREATE TABLE ConvertIntoDateFormat (
Id INT NOT NULL AUTO_INCREMENT,
LoginDate VARCHAR(30),
PRIMARY KEY(Id)
);
रिकॉर्ड डालें (dd.mm.yyyy फॉर्मेट में):
INSERT INTO ConvertIntoDateFormat(LoginDate) VALUES('11.01.2019');
INSERT INTO ConvertIntoDateFormat(LoginDate) VALUES('10.04.2017');
INSERT INTO ConvertIntoDateFormat(LoginDate) VALUES('21.10.2016');
INSERT INTO ConvertIntoDateFormat(LoginDate) VALUES('26.09.2018');
INSERT INTO ConvertIntoDateFormat(LoginDate) VALUES('25.12.2012');
सभी रिकॉर्ड देखें:
SELECT * FROM ConvertIntoDateFormat;
आउटपुट:
+----+------------+
| Id | LoginDate |
+----+------------+
| 1 | 11.01.2019 |
| 2 | 10.04.2017 |
| 3 | 21.10.2016 |
| 4 | 26.09.2018 |
| 5 | 25.12.2012 |
+----+------------+
दिनांक बदलने का क्वेरी
SELECT STR_TO_DATE(LoginDate, '%d.%m.%Y') AS DateFormat FROM ConvertIntoDateFormat;
परिणाम (YYYY-MM-DD फॉर्मेट):
+------------+
| DateFormat |
+------------+
| 2019-01-11 |
| 2017-04-10 |
| 2016-10-21 |
| 2018-09-26 |
| 2012-12-25 |
+------------+
वैकल्पिक: DATE_FORMAT() के साथ
यदि आप आउटपुट फॉर्मेट को कस्टमाइज़ करना चाहते हैं:
SELECT DATE_FORMAT(STR_TO_DATE(LoginDate, '%d.%m.%Y'), '%Y-%m-%d') AS DateFormat
FROM ConvertIntoDateFormat;
नोट
STR_TO_DATE()स्ट्रिंग को DATE टाइप में बदलता हैDATE_FORMAT()DATE को मनचाहे स्ट्रिंग फॉर्मेट में बदलता है- अमान्य दिनांक स्ट्रिंग के लिए परिणाम NULL होगा