MySQL में CHAR से DATETIME रूपांतरण
जब दिनांक-स्ट्रिंग्स गैर-मानक प्रारूप में CHAR/VARCHAR कॉलम में संग्रहीत होती हैं (जैसे 'MM/DD/YYYY HH:MI'), तो उन्हें मानक DATETIME में परिवर्तित करने के लिए STR_TO_DATE() के साथ REPLACE() का उपयोग करें।
उदाहरण: स्लैश-पृथक दिनांक-स्ट्रिंग्स परिवर्तित करना
mysql> CREATE TABLE DemoTable1472 (
-> ShippingDate CHAR(35)
-> );
Query OK, 0 rows affected (0.46 sec)
mysql> INSERT INTO DemoTable1472 VALUES
-> ('12/31/2017 10:50'), ('01/10/2018 12:00'), ('03/20/2019 09:30');
Query OK, 3 rows affected (0.15 sec)
mysql> SELECT * FROM DemoTable1472;
+------------------+
| ShippingDate |
+------------------+
| 12/31/2017 10:50 |
| 01/10/2018 12:00 |
| 03/20/2019 09:30 |
+------------------+
3 rows in set (0.00 sec)
STR_TO_DATE() के साथ REPLACE() क्वेरी
mysql> SELECT STR_TO_DATE(REPLACE(ShippingDate, '/', ','), '%m,%d,%Y %T')
-> FROM DemoTable1472;
परिणाम
+----------------------------------------------------------+
| str_to_date(replace(ShippingDate,'/',','),'%m,%d,%Y %T') |
+----------------------------------------------------------+
| 2017-12-31 10:50:00 |
| 2018-01-10 12:00:00 |
| 2019-03-20 09:30:00 |
+----------------------------------------------------------+
3 rows in set (0.00 sec)
चरण-दर-चरण परिवर्तन
| मूल | REPLACE('/', ',') | प्रारूप: %m,%d,%Y %T | परिणाम |
| 12/31/2017 10:50 | 12,31,2017 10:50 | महीना=12, दिन=31, वर्ष=2017 | 2017-12-31 10:50:00 |
| 01/10/2018 12:00 | 01,10,2018 12:00 | महीना=01, दिन=10, वर्ष=2018 | 2018-01-10 12:00:00 |
| 03/20/2019 09:30 | 03,20,2019 09:30 | महीना=03, दिन=20, वर्ष=2019 | 2019-03-20 09:30:00 |
प्रारूप निर्दिष्टकर्ता
%m - महीना (01-12)
%d - दिन (01-31)
%Y - 4-अंकीय वर्ष
%T - समय (HH:MM:SS) = %H:%i:%s
स्थायी कॉलम परिवर्तन
-- 1. नया DATETIME कॉलम जोड़ें
ALTER TABLE DemoTable1472 ADD COLUMN ShippingDateTime DATETIME;
-- 2. परिवर्तित मानों से भरें
UPDATE DemoTable1472
SET ShippingDateTime = STR_TO_DATE(REPLACE(ShippingDate, '/', ','), '%m,%d,%Y %T');
-- 3. पुराना कॉलम हटाएं (वैकल्पिक)
ALTER TABLE DemoTable1472 DROP COLUMN ShippingDate;
-- 4. नए कॉलम का नाम बदलें (वैकल्पिक)
ALTER TABLE DemoTable1472 CHANGE ShippingDateTime ShippingDate DATETIME;
सामान्य दिनांक प्रारूप पैटर्न
| इनपुट प्रारूप | STR_TO_DATE पैटर्न |
| MM/DD/YYYY HH:MI | '%m/%d/%Y %H:%i' |
| DD-MM-YYYY | '%d-%m-%Y' |
| YYYY.MM.DD | '%Y.%m.%d' |
| Mon DD, YYYY | '%b %d, %Y' |