VARCHAR को DATE में कनवर्ट करने के लिए DATE_FORMAT() और STR_TO_DATE() फ़ंक्शन का उपयोग करें।
सिंटैक्स
SELECT DATE_FORMAT(STR_TO_DATE(yourColumnName, 'yourFormatSpecifier'),
'yourDateFormatSpecifier') AS anyVariableName
FROM yourTableName;
उदाहरण के साथ समझें
सबसे पहले एक टेबल बनाते हैं:
mysql> CREATE TABLE VarcharToDate (
-> Id INT NOT NULL AUTO_INCREMENT,
-> Created_Time VARCHAR(100),
-> PRIMARY KEY(Id)
-> );
Query OK, 0 rows affected (1.10 sec)
रिकॉर्ड डालें
mysql> INSERT INTO VarcharToDate(Created_Time) VALUES('12/1/2016');
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO VarcharToDate(Created_Time) VALUES('14/3/2017');
Query OK, 1 row affected (0.18 sec)
mysql> INSERT INTO VarcharToDate(Created_Time) VALUES('15/3/2018');
Query OK, 1 row affected (0.21 sec)
mysql> INSERT INTO VarcharToDate(Created_Time) VALUES('19/5/2011');
Query OK, 1 row affected (0.18 sec)
mysql> INSERT INTO VarcharToDate(Created_Time) VALUES('19/8/2019');
Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO VarcharToDate(Created_Time) VALUES('21/11/2020');
Query OK, 1 row affected (0.23 sec)
सभी रिकॉर्ड देखें
mysql> SELECT * FROM VarcharToDate;
आउटपुट
+----+--------------+ | Id | Created_Time | +----+--------------+ | 1 | 12/1/2016 | | 2 | 14/3/2017 | | 3 | 15/3/2018 | | 4 | 19/5/2011 | | 5 | 19/8/2019 | | 6 | 21/11/2020 | +----+--------------+ 6 rows in set (0.00 sec)
VARCHAR को DATE में कनवर्ट करने की क्वेरी
पहले STR_TO_DATE() का उपयोग करके डेट में कनवर्ट करें, फिर DATE_FORMAT() से मनचाहा फॉर्मेट दें:
mysql> SELECT DATE_FORMAT(STR_TO_DATE(Created_Time, '%d/%m/%Y'), '%Y-%m-%d')
-> AS Date FROM VarcharToDate;
आउटपुट
+------------+ | Date | +------------+ | 2016-01-12 | | 2017-03-14 | | 2018-03-15 | | 2011-05-19 | | 2019-08-19 | | 2020-11-21 | +------------+ 6 rows in set (0.00 sec)
फॉर्मेट स्पेसिफायर: %d = दिन, %m = महीना, %Y = 4 अंकों का वर्ष।