परिचय
MySQL में INSERT INTO ... SELECT स्टेटमेंट और DATE_FORMAT() फंक्शन का उपयोग करके मौजूदा डेटटाइम कॉलम से विभिन्न फॉर्मेट में डेट स्ट्रिंग बनाकर उसी टेबल में डाला जा सकता है।
उदाहरण: टेबल बनाना
mysql> CREATE TABLE DemoTable (
-> DateOfJoining DATETIME,
-> JoiningDate TEXT
-> );
Query OK, 0 rows affected (0.79 sec)
डेटा डालना
mysql> INSERT INTO DemoTable(DateOfJoining) VALUES('2019-10-26 13:52:10');
Query OK, 1 row affected (0.18 sec)
mysql> INSERT INTO DemoTable(DateOfJoining) VALUES('2018-12-31 15:20:40');
Query OK, 1 row affected (0.16 sec)
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable;
आउटपुट:
+---------------------+-------------+
| DateOfJoining | JoiningDate |
+---------------------+-------------+
| 2019-10-26 13:52:10 | NULL |
| 2018-12-31 15:20:40 | NULL |
+---------------------+-------------+
2 rows in set (0.00 sec)
फॉर्मेटेड डेट डालने की क्वेरी
mysql> INSERT INTO DemoTable(JoiningDate)
-> SELECT DATE_FORMAT(DateOfJoining, '%W %e, %b %Y @ %r') FROM DemoTable;
Query OK, 2 rows affected (0.13 sec)
Records: 2 Duplicates: 0 Warnings: 0
परिणाम देखना
mysql> SELECT * FROM DemoTable;
आउटपुट:
+---------------------+-------------------------------------+
| DateOfJoining | JoiningDate |
+---------------------+-------------------------------------+
| 2019-10-26 13:52:10 | NULL |
| 2018-12-31 15:20:40 | NULL |
| NULL | Saturday 26, Oct 2019 @ 01:52:10 PM |
| NULL | Monday 31, Dec 2018 @ 03:20:40 PM |
+---------------------+-------------------------------------+
4 rows in set (0.00 sec)
व्याख्या
INSERT INTO DemoTable(JoiningDate)- केवल JoiningDate कॉलम में डालेगाSELECT DATE_FORMAT(...)- मौजूदा पंक्तियों से फॉर्मेटेड स्ट्रिंग बनाता है%W- सप्ताह का पूरा नाम (Saturday, Monday)%e- महीने का दिन (1-31, बिना अग्रणी शून्य)%b- महीने का संक्षिप्त नाम (Oct, Dec)%Y- 4-अंकीय वर्ष%r- 12-घंटे फॉर्मेट में समय (hh:mm:ss AM/PM)
सामान्य DATE_FORMAT पैटर्न
| पैटर्न | उदाहरण आउटपुट |
|---|---|
%Y-%m-%d | 2019-10-26 |
%d/%m/%Y | 26/10/2019 |
%M %d, %Y | October 26, 2019 |
%H:%i:%s | 13:52:10 (24-घंटे) |
नोट
यह क्वेरी नई पंक्तियां बनाती है (कुल 4 पंक्तियां)। यदि आप मौजूदा पंक्तियों को अपडेट करना चाहते हैं, तो UPDATE का उपयोग करें:
UPDATE DemoTable
SET JoiningDate = DATE_FORMAT(DateOfJoining, '%W %e, %b %Y @ %r')
WHERE JoiningDate IS NULL;