MySQL में तारीख रेंज क्वेरी: BETWEEN और तुलना ऑपरेटर
MySQL में DATE, DATETIME, TIMESTAMP कॉलम की तुलना सीधे तुलना ऑपरेटर (>=, <=) या BETWEEN से की जा सकती है।
उदाहरण: एडमिशन तारीख जून से अगस्त 2019 के बीच
टेबल बनाएं:
CREATE TABLE DemoTable (AdmissionDate DATE);
INSERT INTO DemoTable VALUES ('2019-08-31'), ('2019-09-01'), ('2019-05-10'), ('2019-06-12');
डेटा:
+---------------+ | AdmissionDate | +---------------+ | 2019-08-31 | | 2019-09-01 | | 2019-05-10 | | 2019-06-12 | +---------------+
तारीख रेंज क्वेरी: 2019-06-01 से 2019-08-31 तक
SELECT * FROM DemoTable WHERE AdmissionDate >= '2019-06-01' AND AdmissionDate <= '2019-08-31';
परिणाम:
+---------------+ | AdmissionDate | +---------------+ | 2019-08-31 | | 2019-06-12 | +---------------+
BETWEEN का उपयोग (समतुल्य)
SELECT * FROM DemoTable WHERE AdmissionDate BETWEEN '2019-06-01' AND '2019-08-31';
महत्वपूर्ण: DATETIME/TIMESTAMP के लिए समय घटक
यदि कॉलम DATETIME है, तो '2019-08-31' का अर्थ '2019-08-31 00:00:00' होता है। उस दिन के बाद के समय शामिल नहीं होंगे।
सही तरीका: अगले दिन की शुरुआत तक
-- पिछले 30 दिन WHERE AdmissionDate >= DATE_SUB(CURDATE(), INTERVAL 30 DAY) AND AdmissionDate <= CURDATE();
इंडेक्स उपयोग
AdmissionDate पर इंडेक्स होने से रेंज क्वेरी तेज होती है:
CREATE INDEX idx_admission_date ON DemoTable(AdmissionDate);