কম্পিউটার টিউটোরিয়াল

MySQL-এ CURDATE() এবং INTERVAL 1 DAY ব্যবহার করে আজ এবং আগামীকালের রেকর্ড বের করা

বর্তমান তারিখ (CURDATE()) এবং আগামীকাল (CURDATE() + INTERVAL 1 DAY) এই দুটি তারিখের যেকোনো একটি মিলে রেকর্ড বের করতে 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'); -- আগামীকাল

ডেটা যাচাই

mysql> SELECT * FROM DemoTable1956;
+-----------+-------------+--------------+--------------+
| ProductId | ProductName | CustomerName | ShippingDate |
+-----------+-------------+--------------+--------------+
|       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   |
+-----------+-------------+--------------+--------------+

কোয়েরি: আজ এবং আগামীকালের শিপিং वाले কাস্টমার

mysql> SELECT CustomerName
    FROM DemoTable1956
    WHERE ShippingDate IN (CURDATE(), CURDATE() + INTERVAL 1 DAY);

আউটপুট:

+--------------+
| CustomerName |
+--------------+
| David        |
| Robert       |
+--------------+

বিকল্প পদ্ধতিসমূহ

পদ্ধতিকোয়েরিটিপ্পণী
IN (সুপারিশ করা)WHERE ShippingDate IN (CURDATE(), CURDATE()+INTERVAL 1 DAY)পঠনীয়, ইন্ডেক্স ব্যবহার করতে পারে
ORWHERE ShippingDate = CURDATE() OR ShippingDate = CURDATE()+1সমতুল্য
BETWEENWHERE ShippingDate BETWEEN CURDATE() AND CURDATE()+INTERVAL 1 DAYরেঞ্জ, ইনক্লूसিভ
রেঞ্জ (সেরা পারফরম্যান্স)WHERE ShippingDate >= CURDATE() AND ShippingDate < CURDATE()+INTERVAL 2 DAYইন্ডেক্স ফ্রেন্ডলি

সতর্কতা

  • CURDATE() কোয়েরি এক্সিকিউশন শুরু হওয়ার সময়ের তারিখ রিটার্ন করে (স্থির থাকে পুরো কোয়েরিতে)।
  • NOW() বা SYSDATE() সময়সহ রিটার্ন করে — DATE কলামে তুলনা করলে টাইম কম্পোনেন্ট ঝুঁকি সৃষ্টি করতে পারে।
  1. MySQL-এ কারেন্ট ডেট ও টেবিলের ডেট রেকর্ডের পার্থক্য বের করা

  2. MySQL-এ DATE_FORMAT() ব্যবহার করে ডেটকে টেক্সট ফরম্যাটে কনভার্ট করা

  3. MySQL-এ STR_TO_DATE() এবং CURDATE() ব্যবহার করে বর্তমান তারিখের রেকর্ড খুঁজুন

  4. MySQL WHERE ক্লজে ডিউ ডেট এবং কারেন্ট ডেট রেকর্ড চেক করার শর্ত