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

MySQL में तारीख प्रारूप कैसे अपडेट करें?

MySQL में STR_TO_DATE() का उपयोग करके गलत तारीख प्रारूप को सही करना

जब तारीख गलत प्रारूप में VARCHAR कॉलम में संग्रहीत हो (जैसे 'YYYY-DD-MM'), तो STR_TO_DATE() फ़ंक्शन का उपयोग करके इसे सही DATE टाइप में पार्स करें।

उदाहरण के साथ पूर्ण कार्यान्वयन

टेबल बनाना (VARCHAR में गलत प्रारूप)

mysql> CREATE TABLE DemoTable630 (ArrivalDate VARCHAR(100));

रिकॉर्ड डालना (YYYY-DD-MM प्रारूप में)

mysql> INSERT INTO DemoTable630 VALUES('2015-21-01'), ('2018-25-12'), ('2019-15-07'), ('2016-31-03');

सभी रिकॉर्ड देखना

mysql> SELECT * FROM DemoTable630;

आउटपुट:

+-------------+
| ArrivalDate |
+-------------+
| 2015-21-01  |
| 2018-25-12  |
| 2019-15-07  |
| 2016-31-03  |
+-------------+
4 rows in set (0.00 sec)

सही DATE में बदलना

mysql> SELECT STR_TO_DATE(ArrivalDate, '%Y-%d-%m') FROM DemoTable630;

आउटपुट:

+-------------------------------------+
| STR_TO_DATE(ArrivalDate, '%Y-%d-%m') |
+-------------------------------------+
| 2015-01-21                            |
| 2018-12-25                            |
| 2019-07-15                            |
| 2016-03-31                            |
+-------------------------------------+
4 rows in set (0.00 sec)

प्रारूप विशिष्टकर्ता व्याख्या:

  • %Y - 4-अंकीय वर्ष (2015)
  • %d - दिन (21, 25, 15, 31)
  • %m - महीना (01, 12, 07, 03)
  • पैटर्न '%Y-%d-%m' स्रोत प्रारूप YYYY-DD-MM से मेल खाता है

टेबल में स्थायी रूप से अपडेट करना

-- 1. नया DATE कॉलम जोड़ें
ALTER TABLE DemoTable630 ADD COLUMN ArrivalDateFixed DATE;

-- 2. कनवर्ट करके अपडेट करें
UPDATE DemoTable630 
SET ArrivalDateFixed = STR_TO_DATE(ArrivalDate, '%Y-%d-%m');

-- 3. जांचें
SELECT ArrivalDate, ArrivalDateFixed FROM DemoTable630;

-- 4. पुराना कॉलम हटाएं, नए का नाम बदलें
ALTER TABLE DemoTable630 DROP COLUMN ArrivalDate;
ALTER TABLE DemoTable630 CHANGE ArrivalDateFixed ArrivalDate DATE;

आम तारीख प्रारूप और उनके पैटर्न

स्रोत प्रारूपउदाहरणSTR_TO_DATE पैटर्न
YYYY-MM-DD2019-07-14%Y-%m-%d
YYYY-DD-MM2019-14-07%Y-%d-%m
DD/MM/YYYY14/07/2019%d/%m/%Y
MM/DD/YYYY07/14/2019%m/%d/%Y
DD-MON-YYYY14-Jul-2019%d-%b-%Y
YYYYMMDD20190714%Y%m%d

अमान्य तारीख संभालना

SELECT STR_TO_DATE('2019-31-02', '%Y-%d-%m'); -- NULL लौटाता है (31 फरवरी अमान्य)
SELECT STR_TO_DATE('invalid', '%Y-%m-%d');    -- NULL लौटाता है

अमान्य तारीखों को पहचानने के लिए:

SELECT * FROM DemoTable630 
WHERE STR_TO_DATE(ArrivalDate, '%Y-%d-%m') IS NULL 
  AND ArrivalDate IS NOT NULL;

सर्वोत्तम अभ्यास

  • तारीख के लिए हमेशा DATE, DATETIME, TIMESTAMP टाइप उपयोग करें
  • स्ट्रिंग (VARCHAR) में तारीख संग्रहीत न करें
  • एप्लिकेशन लेयर पर वैधता जांच करें
  1. - MySQL में वर्तमान दिनांक से मिलान करने वाली विशिष्ट दिनांक पर रिकॉर्ड अपडेट करें

    आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable1822 ( Amount int, DueDate date ); Query OK, 0 rows affected (0.00 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable1822 values(1000,2019-10-11); Query OK, 1 row affected (0.00 sec) mysql&

  1. - MySQL में DATE_ADD से तारीख में वर्ष जोड़ें

    UPDATE और DATE_ADD() से मौजूदा तारीखों में अंतराल जोड़ें मौजूदा तारीख कॉलम में वर्ष (या अन्य अंतराल) जोड़ने के लिए UPDATE के साथ DATE_ADD() का उपयोग करें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable1984 ( ShippingDate date ); Query OK, 0 rows affected (0.00 sec) mysql> insert into

  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