INTERVAL के साथ सापेक्ष तिथि फ़िल्टरिंग
वर्तमान तिथि से ठीक 7 दिन पहले की तिथि वाले रिकॉर्ड प्राप्त करने के लिए DATE() और INTERVAL का उपयोग करें।
टेबल और डेटा (मान लें वर्तमान तिथि 2019-08-23 है)
mysql> CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
AdmissionDate DATETIME
);
Query OK, 0 rows affected (0.83 sec)
mysql> INSERT INTO DemoTable(AdmissionDate) VALUES('2019-01-23');
Query OK, 1 row affected (0.17 sec)
mysql> INSERT INTO DemoTable(AdmissionDate) VALUES('2019-08-15');
Query OK, 1 row affected (0.22 sec)
mysql> INSERT INTO DemoTable(AdmissionDate) VALUES('2019-08-16');
Query OK, 1 row affected (0.23 sec)
mysql> INSERT INTO DemoTable(AdmissionDate) VALUES('2019-08-24');
Query OK, 1 row affected (0.14 sec)
सभी रिकॉर्ड
mysql> SELECT * FROM DemoTable;
+----+---------------------+ | Id | AdmissionDate | +----+---------------------+ | 1 | 2019-01-23 00:00:00 | | 2 | 2019-08-15 00:00:00 | | 3 | 2019-08-16 00:00:00 | | 4 | 2019-08-24 00:00:00 | +----+---------------------+ 4 rows in set (0.00 sec)
ठीक 7 दिन पहले (2019-08-16) के रिकॉर्ड
mysql> SELECT * FROM DemoTable
WHERE DATE(AdmissionDate) = CURDATE() - INTERVAL 7 DAY;
परिणाम:
+----+---------------------+ | Id | AdmissionDate | +----+---------------------+ | 3 | 2019-08-16 00:00:00 | +----+---------------------+ 1 row in set (0.04 sec)
व्याख्या: DATE(AdmissionDate) केवल तिथि भाग निकालता है। CURDATE() - INTERVAL 7 DAY वर्तमान तिथि से 7 दिन घटाता है। दोनों की तुलना करके ठीक उस तिथि के रिकॉर्ड मिलते हैं।
रेंज के लिए: WHERE AdmissionDate BETWEEN CURDATE() - INTERVAL 7 DAY AND CURDATE() पिछले 7 दिनों की सभी पंक्तियां देगा।