MySQL में DATE() फ़ंक्शन या DATE_SUB() के साथ CURDATE() का उपयोग करके आप DATETIME कॉलम से आज की दिनांक के रिकॉर्ड फ़िल्टर कर सकते हैं।
उदाहरण तालिका बनाना (DATETIME कॉलम)
mysql> CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
ShippingDate DATETIME
);
शिपिंग दिनांक डालना
mysql> INSERT INTO DemoTable (ShippingDate) VALUES
-> ('2019-03-01 05:45:32'), ('2019-04-13 11:34:56'),
-> ('2019-03-15 04:45:23'), ('2019-04-11 12:10:02');
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable;
आउटपुट:
+----+---------------------+ | Id | ShippingDate | +----+---------------------+ | 1 | 2019-03-01 05:45:32 | | 2 | 2019-04-13 11:34:56 | | 3 | 2019-03-15 04:45:23 | | 4 | 2019-04-11 12:10:02 | +----+---------------------+
आज के रिकॉर्ड प्राप्त करना (मान लें आज 2019-04-13 है)
mysql> SELECT * FROM DemoTable
-> WHERE ShippingDate > DATE_SUB(CURDATE(), INTERVAL 1 DAY);
आउटपुट:
+----+---------------------+ | Id | ShippingDate | +----+---------------------+ | 2 | 2019-04-13 11:34:56 | +----+---------------------+
व्याख्या:
DATE_SUB(CURDATE(), INTERVAL 1 DAY)- कल की दिनांक (2019-04-12 00:00:00)ShippingDate > ...- कल मध्यरात्रि के बाद के सभी शिपमेंट (यानी आज के)
वैकल्पिक विधि (DATE() फ़ंक्शन):
SELECT * FROM DemoTable WHERE DATE(ShippingDate) = CURDATE();
यह ShippingDate के केवल दिनांक भाग की तुलना आज की दिनांक से करता है। DATE() इंडेक्स उपयोग को रोक सकता है; बड़े तालिकाओं के लिए रेंज क्वेरी (>= AND <) बेहतर है:
SELECT * FROM DemoTable WHERE ShippingDate >= CURDATE() AND ShippingDate < DATE_ADD(CURDATE(), INTERVAL 1 DAY);