DATE() फंक्शन का उपयोग करके समय भाग को अनदेखा करना
जब आपके पास DATETIME कॉलम हो और आप केवल तारीख के आधार पर फ़िल्टर करना चाहते हों, तो DATE() फंक्शन का उपयोग करें।
सिंटैक्स
SELECT * FROM yourTableName WHERE DATE(yourColumnName) = 'yourDateValue';
उदाहरण
1. टेबल बनाना
mysql> CREATE TABLE DemoTable (
ArrivalTime DATETIME
);
Query OK, 0 rows affected (0.74 sec)
2. डेटा डालना
mysql> INSERT INTO DemoTable VALUES('2019-01-31 02:34:56');
mysql> INSERT INTO DemoTable VALUES('2019-04-09 18:20:58');
mysql> INSERT INTO DemoTable VALUES('2019-05-11 19:45:23');
mysql> INSERT INTO DemoTable VALUES('2019-02-03 21:10:02');
3. सभी रिकॉर्ड्स देखना
mysql> SELECT * FROM DemoTable;
+---------------------+ | ArrivalTime | +---------------------+ | 2019-01-31 02:34:56 | | 2019-04-09 18:20:58 | | 2019-05-11 19:45:23 | | 2019-02-03 21:10:02 | +---------------------+ 4 rows in set (0.00 sec)
4. केवल तारीख के आधार पर फ़िल्टर करना
mysql> SELECT * FROM DemoTable WHERE DATE(ArrivalTime) = '2019-04-09';
+---------------------+ | ArrivalTime | +---------------------+ | 2019-04-09 18:20:58 | +---------------------+ 1 row in set (0.00 sec)
बेहतर प्रदर्शन के लिए वैकल्पिक तरीका
बड़े टेबल पर DATE() फंक्शन इंडेक्स का उपयोग नहीं कर पाता। बेहतर प्रदर्शन के लिए रेंज क्वेरी का उपयोग करें:
SELECT * FROM DemoTable WHERE ArrivalTime >= '2019-04-09 00:00:00' AND ArrivalTime < '2019-04-10 00:00:00';
महत्वपूर्ण बिंदु
- DATE() फंक्शन DATETIME से केवल तारीख भाग निकालता है
- तारीख का फॉर्मेट 'YYYY-MM-DD' होना चाहिए
- बड़े डेटासेट के लिए रेंज क्वेरी अधिक कुशल है