Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में STR_TO_DATE और REPLACE का उपयोग करके दिनांक प्रारूप परिवर्तित करना

MySQL में गैर-मानक दिनांक प्रारूप (जैसे MM-DD-YYYY HH:MM:SS) को मानक MySQL DATETIME प्रारूप (YYYY-MM-DD HH:MM:SS) में परिवर्तित करने के लिए STR_TO_DATE() के साथ REPLACE() का संयोजन उपयोग करें।

सिंटैक्स

SELECT STR_TO_DATE(REPLACE(date_string, '''', ''), '%c-%e-%Y %T') FROM table_name;

व्यावहारिक उदाहरण

1. टेबल बनाएं और डेटा डालें

mysql> CREATE TABLE DemoTable (DueDate VARCHAR(100));
Query OK, 0 rows affected (0.78 sec)

mysql> INSERT INTO DemoTable VALUES 
('10-01-2019 10:19:20'),
('12-03-2018 11:00:00'),
('02-23-2018 04:20:40');
Query OK, 3 rows affected (0.15 sec)

2. मूल डेटा देखें

mysql> SELECT * FROM DemoTable;
+---------------------+
| DueDate             |
+---------------------+
| 10-01-2019 10:19:20 |
| 12-03-2018 11:00:00 |
| 02-23-2018 04:20:40 |
+---------------------+
3 rows in set (0.00 sec)

3. प्रारूप परिवर्तित करें

mysql> SELECT STR_TO_DATE(REPLACE(DueDate, '''', ''), '%c-%e-%Y %T') FROM DemoTable;
+-----------------------------------------------------+
| STR_TO_DATE(REPLACE(DueDate,''',''), '%c-%e-%Y %T') |
+-----------------------------------------------------+
| 2019-10-01 10:19:20                                 |
| 2018-12-03 11:00:00                                 |
| 2018-02-23 04:20:40                                 |
+-----------------------------------------------------+
3 rows in set (0.00 sec)

प्रारूप विश्लेषण

मूलपार्स किया गयाव्याख्या
10-01-2019 10:19:202019-10-01 10:19:20MM-DD-YYYY → YYYY-MM-DD (महीना 10, दिन 01)
12-03-2018 11:00:002018-12-03 11:00:00महीना 12, दिन 03
02-23-2018 04:20:402018-02-23 04:20:40महीना 02, दिन 23

प्रारूप स्पेसिफायर्स

  • %c - महीना (1-12, अग्रणी शून्य वैकल्पिक)
  • %e - दिन (1-31, अग्रणी स्पेस)
  • %Y - 4-अंकीय वर्ष
  • %T - समय (HH:MM:SS), %H:%i:%s के बराबर

REPLACE की भूमिका

उदाहरण में REPLACE(DueDate, '''', '') किसी संभावित सिंगल कोट्स को हटाता है। यदि आपके डेटा में कोट्स नहीं हैं, तो सीधे STR_TO_DATE(DueDate, '%c-%e-%Y %T') उपयोग करें।

अपडेट के साथ स्थायी परिवर्तन

-- नया कॉलम जोड़ें
ALTER TABLE DemoTable ADD DueDateParsed DATETIME;

-- परिवर्तित करके अपडेट करें
UPDATE DemoTable 
SET DueDateParsed = STR_TO_DATE(REPLACE(DueDate, '''', ''), '%c-%e-%Y %T');

-- फिर पुराना कॉलम हटाएं और नए का नाम बदलें

MySQL 8.0+ में जनरेटेड कॉलम

ALTER TABLE DemoTable 
ADD DueDateParsed DATETIME 
AS (STR_TO_DATE(REPLACE(DueDate, '''', ''), '%c-%e-%Y %T')) STORED;
  1. - MySQL REPLACE() फंक्शन का उपयोग करके टेक्स्ट कॉलम अपडेट करना

    UPDATE के साथ REPLACE() फंक्शन का उपयोग कॉलम मान में किसी विशिष्ट सबस्ट्रिंग को बदलने के लिए REPLACE() फंक्शन का उपयोग UPDATE स्टेटमेंट में करें। आइए पहले एक टेबल बनाते हैं: mysql> CREATE TABLE DemoTable ( Code VARCHAR(100) ); रिकॉर्ड्स इन्सर्ट करें: mysql> INSERT INTO DemoTable VALUES (85

  1. - MySQL कॉलम को JSON फॉर्मेट में अपडेट करना

    CONCAT() का उपयोग करके JSON-जैसा स्ट्रिंग बनाना JSON फॉर्मेट में रिकॉर्ड प्रदर्शित करने के लिए MySQL CONCAT() का उपयोग करें। पहले टेबल बनाएं: create table DemoTable1373 ( StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentDetails text ); Query OK, 0 rows affected (0.86 sec) रिकॉर्ड डालें (यह

  1. - MySQL में STR_TO_DATE() से तारीख फॉर्मेट बदलें

    VARCHAR तारीख-स्ट्रिंग को MySQL DATETIME में कनवर्ट करें 12/10/2019 12:34:00 जैसे स्ट्रिंग को मान्य DATETIME में बदलने के लिए STR_TO_DATE() का उपयोग करें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable2010 ( DueDate varchar(20) ); Query OK, 0 rows affected (0.68 sec) mysql> insert int