STR_TO_DATE और DATE_FORMAT से तारीख फॉर्मेट बदलें
'dd/mm/yyyy' फॉर्मेट (जैसे '21/10/2014') को 'yyyymmdd' फॉर्मेट (जैसे '20141021') में बदलने के लिए STR_TO_DATE से पार्स करें और DATE_FORMAT से पुनः फॉर्मेट करें।
सिंटैक्स
DATE_FORMAT(STR_TO_DATE(date_column, '%d/%m/%Y'), '%Y%m%d')
टेबल और डेटा
mysql> CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Admissiondate VARCHAR(200)
);
mysql> INSERT INTO DemoTable(Admissiondate) VALUES('21/10/2014');
mysql> INSERT INTO DemoTable(Admissiondate) VALUES('01/12/2016');
mysql> INSERT INTO DemoTable(Admissiondate) VALUES('31/01/2017');
मूल डेटा
mysql> SELECT * FROM DemoTable;
+----+---------------+
| Id | Admissiondate |
+----+---------------+
| 1 | 21/10/2014 |
| 2 | 01/12/2016 |
| 3 | 31/01/2017 |
+----+---------------+
रूपांतरण क्वेरी
mysql> SELECT DATE_FORMAT(STR_TO_DATE(Admissiondate, '%d/%m/%Y'), '%Y%m%d') FROM DemoTable;
+-------------------------------------------------------------+
| DATE_FORMAT(STR_TO_DATE(Admissiondate, '%d/%m/%Y'), '%Y%m%d') |
+-------------------------------------------------------------+
| 20141021 |
| 20161201 |
| 20170131 |
+-------------------------------------------------------------+
फॉर्मेट स्पेसिफायर
| इनपुट फॉर्मेट | स्पेसिफायर | आउटपुट फॉर्मेट | स्पेसिफायर |
|---|---|---|---|
| दिन | %d | वर्ष (4-अंक) | %Y |
| महीना | %m | महीना (2-अंक) | %m |
| वर्ष (4-अंक) | %Y | दिन (2-अंक) | %d |
उल्टा रूपांतरण (yyyymmdd → dd/mm/yyyy)
DATE_FORMAT(STR_TO_DATE(date_column, '%Y%m%d'), '%d/%m/%Y')
सीधे DATE टाइप में बदलना (अनुशंसित)
-- स्थायी रूपांतरण के लिए
ALTER TABLE DemoTable
MODIFY Admissiondate DATE;
-- या नया कॉलम जोड़कर
ALTER TABLE DemoTable ADD AdmissionDateParsed DATE;
UPDATE DemoTable SET AdmissionDateParsed = STR_TO_DATE(Admissiondate, '%d/%m/%Y');