Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में वर्तमान तारीख और अगले दिन के रिकॉर्ड कैसे चुनें?

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)

सापेक्ष तारीख क्वेरी रियल-टाइम डैशबोर्ड, अलर्ट, और ऑपरेशनल रिपोर्टिंग का आधार हैं।

  1. - MySQL से तारीख चुनकर टेक्स्ट में कैसे फॉर्मेट करें?

    DATE_FORMAT() का उपयोग करके तारीख को टेक्स्ट में बदलना तारीख चुनकर फॉर्मेट करने के लिए SELECT DATE_FORMAT() का उपयोग करें। सिंटैक्स: सिंटैक्स SELECT DATE_FORMAT(yourColumnName, %e %b %y) FROM yourTableName; आइए पहले एक टेबल बनाते हैं: CREATE TABLE DemoTable ( DueDate DATE ); Query OK, 0 rows

  1. - MySQL में STR_TO_DATE और CURDATE से वर्तमान दिनांक वाले रिकॉर्ड ढूंढें

    स्ट्रिंग कॉलम में संग्रहीत दिनांक की तुलना वर्तमान दिनांक से करने के लिए STR_TO_DATE() से पार्स करें और CURDATE() से तुलना करें। सिंटैक्स SELECT * FROM टेबल_नाम WHERE STR_TO_DATE(कॉलम_नाम, फॉर्मेट_स्पेसिफायर) = CURDATE(); उदाहरण: DD/MM/YYYY प्रारूप में दिनांक 1. टेबल बनाएं (स्ट्रिंग कॉलम) ); 2.

  1. - MySQL WHERE क्लॉज़ में ड्यू डेट और करंट डेट रिकॉर्ड्स की जांच करने की शर्त

    ऐसी शर्तों की जांच के लिए, MySQL में IF() फ़ंक्शन का उपयोग करें। उदाहरण आइए एक टेबल बनाते हैं: mysql> create table demo89 ( duedate date ); Query OK, 0 rows affected (0.78 sec) उदाहरण इन्सर्ट कमांड की मदद से टेबल में कुछ रिकॉर्ड डालें: mysql> insert into demo89 values(2020-01-10); Query OK,