UK दिनांक प्रारूप (दिन/महीना/वर्ष - DD/MM/YYYY) को MySQL मानक DATE प्रारूप (YYYY-MM-DD) में परिवर्तित करने के लिए STR_TO_DATE() फ़ंक्शन का उपयोग करें।
सिंटैक्स
SELECT STR_TO_DATE(date_column, '%d/%m/%Y') FROM table_name;
प्रारूप स्पेसिफायर्स
| स्पेसिफायर | अर्थ | उदाहरण |
%d | दिन (01-31) | 31 |
%m | महीना (01-12) | 12 |
%Y | 4-अंकीय वर्ष | 2024 |
/ | शाब्दिक स्लैश मिलान | DD/MM/YYYY में स्लैश |
व्यावहारिक उदाहरण
1. टेबल बनाएं और UK प्रारूप डेटा डालें
mysql> CREATE TABLE DemoTable728 (DueDate VARCHAR(100));
Query OK, 0 rows affected (0.59 sec)
mysql> INSERT INTO DemoTable728 VALUES
('10/11/2019'), ('31/01/2016'), ('01/12/2015'), ('11/03/2018');
Query OK, 4 rows affected (0.15 sec)
2. मूल डेटा देखें
mysql> SELECT * FROM DemoTable728;
+------------+
| DueDate |
+------------+
| 10/11/2019 |
| 31/01/2016 |
| 01/12/2015 |
| 11/03/2018 |
+------------+
4 rows in set (0.00 sec)
3. MySQL DATE में परिवर्तित करें
mysql> SELECT STR_TO_DATE(DueDate, '%d/%m/%Y') FROM DemoTable728;
+---------------------------------+
| STR_TO_DATE(DueDate, '%d/%m/%Y') |
+---------------------------------+
| 2019-11-10 |
| 2016-01-31 |
| 2015-12-01 |
| 2018-03-11 |
+---------------------------------+
4 rows in set (0.00 sec)
परिणाम विश्लेषण
| UK प्रारूप | MySQL DATE | व्याख्या |
| 10/11/2019 | 2019-11-10 | 10 नवंबर 2019 |
| 31/01/2016 | 2016-01-31 | 31 जनवरी 2016 |
| 01/12/2015 | 2015-12-01 | 1 दिसंबर 2015 |
| 11/03/2018 | 2018-03-11 | 11 मार्च 2018 |
अन्य सामान्य प्रारूप
-- US प्रारूप MM/DD/YYYY
STR_TO_DATE(date_col, '%m/%d/%Y')
-- ISO प्रारूप YYYY-MM-DD (पहले से मानक)
STR_TO_DATE(date_col, '%Y-%m-%d')
-- दिनांक-समय DD/MM/YYYY HH:MM:SS
STR_TO_DATE(date_col, '%d/%m/%Y %H:%i:%s')
-- महीना नाम: 31 Jan 2024
STR_TO_DATE(date_col, '%d %b %Y')
स्थायी परिवर्तन के लिए अपडेट
ALTER TABLE DemoTable728 ADD DueDateParsed DATE;
UPDATE DemoTable728 SET DueDateParsed = STR_TO_DATE(DueDate, '%d/%m/%Y');
-- फिर DueDate हटाएं और DueDateParsed का नाम बदलें
जनरेटेड कॉलम (MySQL 5.7+)
ALTER TABLE DemoTable728
ADD DueDateParsed DATE
AS (STR_TO_DATE(DueDate, '%d/%m/%Y')) STORED;
त्रुटि संभाल
-- अमान्य दिनांक के लिए NULL लौटाता है (एरर नहीं)
SELECT STR_TO_DATE('32/13/2024', '%d/%m/%Y'); -- NULL
-- वैधता जांच
SELECT DueDate,
CASE WHEN STR_TO_DATE(DueDate, '%d/%m/%Y') IS NULL
THEN 'Invalid' ELSE 'Valid' END AS validity
FROM DemoTable728;