INTERVAL के साथ 30-दिन विंडो क्वेरी
वर्तमान तारीख से 30 दिन पहले और 30 दिन बाद की रेंज में आने वाली तारीखें चुनने के लिए अंकगणितीय ऑपरेटर और INTERVAL का उपयोग करें।
सिंटैक्स
SELECT * FROM yourTableName WHERE yourDateColumn > NOW() - INTERVAL 30 DAY AND yourDateColumn < NOW() + INTERVAL 30 DAY;
उदाहरण: टेबल और डेटा
mysql> CREATE TABLE selectDatesDemo (
-> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> ArrivalDate DATETIME
-> );
mysql> INSERT INTO selectDatesDemo(ArrivalDate) VALUES
('2019-01-10'), ('2019-01-29'), ('2019-02-13'), ('2019-02-19'),
('2018-02-13'), ('2018-03-13');
मान लें आज 2019-02-27 है
रेंज: 2019-01-28 से 2019-03-29 तक
क्वेरी और परिणाम
mysql> SELECT * FROM selectDatesDemo
-> WHERE ArrivalDate > NOW() - INTERVAL 30 DAY
-> AND ArrivalDate < NOW() + INTERVAL 30 DAY;
+----+---------------------+ | Id | ArrivalDate | +----+---------------------+ | 3 | 2019-02-13 00:00:00 | | 4 | 2019-02-19 00:00:00 | +----+---------------------+
वैकल्पिक सिंटैक्स
DATE_SUB(NOW(), INTERVAL 30 DAY)- 30 दिन पहलेDATE_ADD(NOW(), INTERVAL 30 DAY)- 30 दिन बादBETWEENउपयोग:WHERE date BETWEEN DATE_SUB(NOW(), INTERVAL 30 DAY) AND DATE_ADD(NOW(), INTERVAL 30 DAY)
प्रदर्शन टिप
इंडेक्स उपयोग के लिए फ़ंक्शन कॉल के बजाय रेंज क्वेरी लिखें:
WHERE ArrivalDate >= '2019-01-28' AND ArrivalDate <= '2019-03-29'
सापेक्ष vs निरपेक्ष
- सापेक्ष (NOW() आधारित): रिपोर्ट, डैशबोर्ड के लिए
- निरपेक्ष (निश्चित तारीख): ऐतिहासिक विश्लेषण के लिए