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

MySQL में CURDATE() से सभी डेटटाइम मानों को वर्तमान डेट पर सेट करना

CURDATE() के साथ बल्क UPDATE

टेबल के सभी डेटटाइम मानों को वर्तमान डेट (समय भाग 00:00:00 के साथ) पर सेट करने के लिए UPDATE के साथ CURDATE() फंक्शन का उपयोग करें।

उदाहरण: टेबल बनाना और डेटा इन्सर्ट करना

mysql> CREATE TABLE DemoTable821(AdmissionDate DATETIME);
Query OK, 0 rows affected (1.24 sec)

विभिन्न डेट्स इन्सर्ट करना

mysql> INSERT INTO DemoTable821 VALUES
    ('2019-01-21'),('2018-11-02'),('2016-12-31'),('2015-03-19');
Query OK, 4 rows affected (...)

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

mysql> SELECT * FROM DemoTable821;
+---------------------+
| AdmissionDate       |
+---------------------+
| 2019-01-21 00:00:00 |
| 2018-11-02 00:00:00 |
| 2016-12-31 00:00:00 |
| 2015-03-19 00:00:00 |
+---------------------+
4 rows in set (0.00 sec)

सभी मानों को वर्तमान डेट पर अपडेट करने की क्वेरी

mysql> UPDATE DemoTable821 SET AdmissionDate = CURDATE();
Query OK, 4 rows affected (0.74 sec)
Rows matched: 4  Changed: 4  Warnings: 0

अपडेट के बाद डेटा देखना (मान लें आज 2019-08-03 है)

mysql> SELECT * FROM DemoTable821;
+---------------------+
| AdmissionDate       |
+---------------------+
| 2019-08-03 00:00:00 |
| 2019-08-03 00:00:00 |
| 2019-08-03 00:00:00 |
| 2019-08-03 00:00:00 |
+---------------------+
4 rows in set (0.00 sec)

CURDATE() vs NOW() vs CURRENT_DATE

फंक्शनलौटाता हैडेटाटाइप
CURDATE()YYYY-MM-DDDATE
CURRENT_DATEYYYY-MM-DDDATE (मानक SQL)
NOW()YYYY-MM-DD HH:MM:SSDATETIME
CURRENT_TIMESTAMPYYYY-MM-DD HH:MM:SSDATETIME (मानक SQL)

DATETIME कॉलम में DATE मान असाइन करने पर MySQL स्वतः समय भाग को 00:00:00 सेट करता है।

अल्टरनेटिव: केवल डेट भाग अपडेट करना (समय बनाए रखना)

UPDATE DemoTable821 
SET AdmissionDate = CONCAT(CURDATE(), ' ', TIME(AdmissionDate));

WHERE क्लॉज के साथ चुनिंदा अपडेट

-- केवल पुराने रिकॉर्ड्स अपडेट करें
UPDATE DemoTable821 
SET AdmissionDate = CURDATE() 
WHERE AdmissionDate < '2019-01-01';

सुरक्षित अपडेट मोड

यदि SQL_SAFE_UPDATES = ON है, तो WHERE क्लॉज के बिना UPDATE ब्लॉक होगा:

SET SQL_SAFE_UPDATES = 0;
UPDATE DemoTable821 SET AdmissionDate = CURDATE();
SET SQL_SAFE_UPDATES = 1;

संबंधित डेट फंक्शन्स

  • DATE(NOW()) - NOW() से डेट भाग निकालें (CURDATE() के समान)
  • DATE_ADD(CURDATE(), INTERVAL 1 DAY) - कल की डेट
  • DATE_SUB(CURDATE(), INTERVAL 7 DAY) - 7 दिन पहले
  • LAST_DAY(CURDATE()) - वर्तमान महीने का अंतिम दिन

उपयोग के मामले

  • पुराने रिकॉर्ड्स को "आज" पर रीसेट करना (टेस्टिंग/डेमो)
  • बैच प्रोसेसिंग डेट स्टैम्प करना
  • डेटा माइग्रेशन में डेट नॉर्मलाइज करना
  • समय-संबंधी टेस्ट डेटा तैयार करना
  1. - MySQL में पहले तीन पंक्तियों के लिए कस्टम मान सेट करना

    ORDER BY और LIMIT से पहली N पंक्तियां अपडेट करें पहली तीन पंक्तियों के लिए एक विशिष्ट मान सेट करने के लिए ORDER BY और LIMIT 3 का उपयोग करें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable1968 ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Name varchar(20) ); Query OK, 0 rows affected (0.0

  1. - MySQL में कॉलम मानों के लिए ENUM कैसे सेट करें?

    ENUM कॉलम के साथ टेबल बनाना टेबल बनाते समय ENUM प्रकार निर्दिष्ट करें: ); रिकॉर्ड डालना INSERT INTO DemoTable2019 VALUES (45, Second); सभी रिकॉर्ड देखना SELECT * FROM DemoTable2019; +--------------+---------------+ | StudentMarks | StudentStatus | +--------------+---------------+ | 96

  1. - MySQL में एक क्वेरी में सभी कॉलम नामों के लिए उपनाम (alias) कैसे सेट करें

    सिंटैक्स SELECT yourColumnName1 AS aliasName1, yourColumnName2 AS aliasName2 FROM yourTableName AS tableAlias; उदाहरण टेबल बनाएं: ); डेटा डालें: INSERT INTO DemoTable2014 VALUES (Chris, Brown); उपनाम के साथ क्वेरी FROM DemoTable2014 tbl; परिणाम +------------------+-----------------+ | Studen