MySQL में शिपिंग/डिलीवरी तारीख के आधार पर आज और कल के रिकॉर्ड चुनने के लिए, CURDATE() फंक्शन के साथ IN ऑपरेटर या रेंज तुलना का उपयोग करें। यह डैशबोर्ड, नोटिफिकेशन, और शेड्यूलिंग क्वेरीज़ के लिए सामान्य आवश्यकता है।
उदाहरण: आज और कल की शिपिंग वाले ग्राहक
वर्तमान तारीख जांचें:
mysql> SELECT CURDATE(); +------------+ | curdate() | +------------+ | 2019-12-15 | +------------+
डेमो टेबल बनाएं:
mysql> CREATE TABLE DemoTable1956 (
ProductId INT,
ProductName VARCHAR(20),
CustomerName VARCHAR(20),
ShippingDate DATE
);
डेटा इन्सर्ट करें:
mysql> INSERT INTO DemoTable1956 VALUES (101, 'Product-1', 'Sam', '2019-10-11'), (102, 'Product-2', 'Carol', '2018-12-01'), (103, 'Product-3', 'David', '2019-12-15'), -- आज (104, 'Product-4', 'Robert', '2019-12-16'); -- कल
क्वेरी (IN ऑपरेटर):
mysql> SELECT CustomerName FROM DemoTable1956 WHERE ShippingDate IN (CURDATE(), CURDATE() + INTERVAL 1 DAY);
आउटपुट:
+--------------+ | CustomerName | +--------------+ | David | | Robert | +--------------+
वैकल्पिक: रेंज तुलना (इंडेक्स-अनुकूल)
SELECT CustomerName FROM DemoTable1956 WHERE ShippingDate >= CURDATE() AND ShippingDate < CURDATE() + INTERVAL 2 DAY;
लाभ: ShippingDate पर इंडेक्स उपयोग कर सकता है; IN और फंक्शन कॉल इंडेक्स उपयोग रोक सकते हैं।
सापेक्ष तारीख पैटर्न
-- आज WHERE ShippingDate = CURDATE() -- कल WHERE ShippingDate = CURDATE() + INTERVAL 1 DAY -- पिछले 7 दिन WHERE ShippingDate >= CURDATE() - INTERVAL 7 DAY -- इस महीने WHERE ShippingDate >= DATE_FORMAT(CURDATE(), '%Y-%m-01') AND ShippingDate < DATE_FORMAT(CURDATE() + INTERVAL 1 MONTH, '%Y-%m-01') -- अगले 30 दिन WHERE ShippingDate BETWEEN CURDATE() AND CURDATE() + INTERVAL 30 DAY
DATETIME कॉलम के लिए
-- आज पूरे दिन WHERE dt >= CURDATE() AND dt < CURDATE() + INTERVAL 1 DAY -- DATE() फंक्शन (इंडेक्स उपयोग नहीं कर सकता) WHERE DATE(dt) = CURDATE()
टाइमज़ोन विचार
CURDATE()सर्वर टाइमज़ोन में वर्तमान तारीख लौटाता है- यूज़र टाइमज़ोन अलग हो तो
CONVERT_TZ()या एप्लिकेशन लेयर हैंडलिंग आवश्यक - UTC में स्टोर करें, डिस्प्ले पर कन्वर्ट करें
प्रदर्शन टिप्स
ShippingDateपर इंडेक्स बनाएं- रेंज क्वेरी (
>= AND <)IN/DATE()से तेज़ - कवरिंग इंडेक्स:
INDEX idx_ship_cust (ShippingDate, CustomerName)
सापेक्ष तारीख क्वेरी रियल-टाइम डैशबोर्ड, अलर्ट, और ऑपरेशनल रिपोर्टिंग का आधार हैं।