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

MySQL में STR_TO_DATE() और REPLACE() का उपयोग करके CHAR फ़ील्ड को DATETIME फ़ील्ड में परिवर्तित करना

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:5012,31,2017 10:50महीना=12, दिन=31, वर्ष=20172017-12-31 10:50:00
01/10/2018 12:0001,10,2018 12:00महीना=01, दिन=10, वर्ष=20182018-01-10 12:00:00
03/20/2019 09:3003,20,2019 09:30महीना=03, दिन=20, वर्ष=20192019-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'
  1. - MySQL में DATETIME मान आसानी से डालना

    MySQL में DATETIME कॉलम में तिथि-समय मान डालना MySQL मानक YYYY-MM-DD HH:MM:SS फॉर्मेट में DATETIME मान स्वीकार करता है। इसे सीधे INSERT स्टेटमेंट में स्ट्रिंग के रूप में प्रदान किया जा सकता है। सिंटैक्स INSERT INTO yourTableName VALUES(YYYY-MM-DD HH:MM:SS); व्यावहारिक उदाहरण तालिका बनाना CREATE

  1. - MySQL में डेटटाइम को री-फॉर्मेट कैसे करें?

    परिचय MySQL में DATE_FORMAT() फंक्शन का उपयोग करके डेटटाइम मानों को विभिन्न फॉर्मेट में प्रदर्शित किया जा सकता है। MySQL डिफ़ॉल्ट रूप से YYYY-MM-DD HH:MM:SS फॉर्मेट में डेटटाइम स्टोर और प्रदर्शित करता है। उदाहरण: टेबल बनाना और डेटा डालना ); Query OK, 0 rows affected (1.10 sec) INSERT INTO DemoTa

  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