CURDATE() के साथ आज की तारीख के रिकॉर्ड्स फ़ेच करना
डेटाइम कॉलम की तुलना वर्तमान तारीख से करने के लिए CURDATE() फंक्शन और DATE() फंक्शन का उपयोग करें।
आइए पहले एक टेबल बनाते हैं:
mysql> CREATE TABLE DemoTable (
RegistrationLastDate DATETIME
);
मान लें वर्तमान तारीख है: 2019-09-03
रिकॉर्ड्स इन्सर्ट करें:
mysql> INSERT INTO DemoTable VALUES ('2019-08-01');
mysql> INSERT INTO DemoTable VALUES ('2019-09-03 09:50:56');
mysql> INSERT INTO DemoTable VALUES ('2019-09-03');
mysql> INSERT INTO DemoTable VALUES ('2019-09-02');
mysql> INSERT INTO DemoTable VALUES ('2019-09-02 09:50:00');
सभी रिकॉर्ड्स देखें:
mysql> SELECT * FROM DemoTable;
आउटपुट:
+----------------------+ | RegistrationLastDate | +----------------------+ | 2019-08-01 00:00:00 | | 2019-09-03 09:50:56 | | 2019-09-03 00:00:00 | | 2019-09-02 00:00:00 | | 2019-09-02 09:50:00 | +----------------------+
आज की तारीख के बराबर रिकॉर्ड्स खोजने के लिए क्वेरी:
mysql> SELECT * FROM DemoTable
WHERE DATE(RegistrationLastDate) = CURDATE();
आउटपुट:
+----------------------+ | RegistrationLastDate | +----------------------+ | 2019-09-03 09:50:56 | | 2019-09-03 00:00:00 | +----------------------+
व्याख्या:
- DATE(RegistrationLastDate): डेटाइम से केवल तारीख भाग निकालता है (समय भाग को हटा देता है)
- CURDATE(): वर्तमान तारीख लौटाता है (समय के बिना)
- तुलना केवल तारीख भाग पर होती है, इसलिए '2019-09-03 09:50:56' और '2019-09-03 00:00:00' दोनों मेल खाते हैं
प्रदर्शन टिप: बड़े टेबल्स पर DATE() फंक्शन इंडेक्स उपयोग को रोक सकता है। बेहतर प्रदर्शन के लिए रेंज क्वेरी का उपयोग करें:
WHERE RegistrationLastDate >= CURDATE() AND RegistrationLastDate < CURDATE() + INTERVAL 1 DAY