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-DD | DATE |
CURRENT_DATE | YYYY-MM-DD | DATE (मानक SQL) |
NOW() | YYYY-MM-DD HH:MM:SS | DATETIME |
CURRENT_TIMESTAMP | YYYY-MM-DD HH:MM:SS | DATETIME (मानक 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())- वर्तमान महीने का अंतिम दिन
उपयोग के मामले
- पुराने रिकॉर्ड्स को "आज" पर रीसेट करना (टेस्टिंग/डेमो)
- बैच प्रोसेसिंग डेट स्टैम्प करना
- डेटा माइग्रेशन में डेट नॉर्मलाइज करना
- समय-संबंधी टेस्ट डेटा तैयार करना