वर्तमान दिनांक से निश्चित अंतराल (जैसे 15 दिन) पहले की तारीख वाले रिकॉर्ड प्राप्त करने के लिए DATE_SUB() और INTERVAL का उपयोग करें।
टेबल बनाएं
mysql> CREATE TABLE DemoTable1845 (
ArrivalDate DATE
);
डेटा डालें
mysql> INSERT INTO DemoTable1845 VALUES('2019-12-02');
mysql> INSERT INTO DemoTable1845 VALUES('2019-11-18');
mysql> INSERT INTO DemoTable1845 VALUES('2019-12-18');
mysql> INSERT INTO DemoTable1845 VALUES('2019-12-25');
mysql> INSERT INTO DemoTable1845 VALUES('2019-11-15');
वर्तमान दिनांक मान लें
mysql> SELECT NOW(); +---------------------+ | now() | +---------------------+ | 2019-12-02 20:47:05 | +---------------------+
15 दिन पहले की तारीख से पुराने रिकॉर्ड
mysql> SELECT * FROM DemoTable1845
WHERE ArrivalDate < DATE_SUB(NOW(), INTERVAL 15 DAY);
आउटपुट:
+-------------+ | ArrivalDate | +-------------+ | 2019-11-15 | +-------------+
व्याख्या
NOW()वर्तमान दिनांक-समय देता है।DATE_SUB(NOW(), INTERVAL 15 DAY)→ 15 दिन घटाता है =2019-11-17।ArrivalDate < '2019-11-17'वाली पंक्तियाँ चुनी जाती हैं।
अन्य INTERVAL इकाइयाँ
INTERVAL 1 DAY,INTERVAL 3 MONTH,INTERVAL 1 YEARINTERVAL 2 HOUR,INTERVAL 30 MINUTE,INTERVAL 10 SECOND- संयुक्त:
INTERVAL '1 12:30:00' DAY_SECOND
सुझाव
- केवल दिनांक कॉलम है तो
CURDATE()उपयोग करें (NOW()में समय भी होता है)। WHERE ArrivalDate <= DATE_SUB(CURDATE(), INTERVAL 15 DAY)अधिक सटीक।- इंडेक्स का लाभ लेने के लिए कॉलम पर फ़ंक्शन न लगाएं:
WHERE ArrivalDate < ...सही है।