MySQL में NOW() और INTERVAL का उपयोग करके वर्तमान समय से निर्दिष्ट अवधि पहले/बाद के रिकॉर्ड ढूंढ सकते हैं।
उदाहरण: पिछले 5 घंटे में आगमन समय
1. टेबल बनाएं
mysql> CREATE TABLE DemoTable1570 (ArrivalTime DATETIME);
2. डेटा डालें
mysql> INSERT INTO DemoTable1570 VALUES('2019-10-15 05:10:00');
mysql> INSERT INTO DemoTable1570 VALUES('2019-10-15 23:00:00');
mysql> INSERT INTO DemoTable1570 VALUES('2019-10-15 23:10:00');
mysql> INSERT INTO DemoTable1570 VALUES('2019-10-15 16:10:00');
3. वर्तमान समय मान लें
mysql> SELECT NOW(); +---------------------+ | now() | +---------------------+ | 2019-10-15 22:26:14 | +---------------------+
4. पिछले 5 घंटे के रिकॉर्ड
mysql> SELECT * FROM DemoTable1570
-> WHERE ArrivalTime > NOW() - INTERVAL 5 HOUR;
5. परिणाम
+---------------------+ | ArrivalTime | +---------------------+ | 2019-10-15 23:00:00 | | 2019-10-15 23:10:00 | +---------------------+
व्याख्या
NOW()= 2019-10-15 22:26:14NOW() - INTERVAL 5 HOUR= 2019-10-15 17:26:14ArrivalTime > 17:26:14वाली पंक्तियां चुनी गईं- 05:10 और 16:10 बाहर (5 घंटे से अधिक पुराने)
INTERVAL इकाइयां
INTERVAL 1 SECOND INTERVAL 1 MINUTE INTERVAL 1 HOUR INTERVAL 1 DAY INTERVAL 1 WEEK INTERVAL 1 MONTH INTERVAL 1 YEAR -- संयोजन INTERVAL 1 DAY 2 HOUR INTERVAL '1 2:30' DAY_HOUR
अन्य उपयोग
-- भविष्य के 3 दिन WHERE event_date BETWEEN NOW() AND NOW() + INTERVAL 3 DAY -- पिछले 30 दिन WHERE created_at >= NOW() - INTERVAL 30 DAY -- विशिष्ट दिनांक से WHERE created_at > '2024-01-01' - INTERVAL 7 DAY
प्रदर्शन टिप
कॉलम पर फ़ंक्शन न लगाएं (जैसे DATE(ArrivalTime))। इंडेक्स उपयोग के लिए कॉलम को सीधे तुलना करें।