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

MySQL-এ CURDATE() ব্যবহার করে ডেটা লিস্ট থেকে আজকের রেকর্ড বের করা

MySQL-এ ডেট কলাম থেকে আজকের তারিখের রেকর্ড বের করতে CURDATE() ফাংশন এবং DATE() ফাংশন (ডেটাইম থেকে ডেট অংশ বের করতে) ব্যবহার করা হয়।

টেবিল তৈরি এবং ডেটা ইনসার্ট

mysql> CREATE TABLE DemoTable (
    -> DueDate DATE
    -> );
Query OK, 0 rows affected (1.35 sec)
mysql> INSERT INTO DemoTable VALUES('2019-06-14');
mysql> INSERT INTO DemoTable VALUES('2019-06-15');
mysql> INSERT INTO DemoTable VALUES('2019-06-16');
mysql> INSERT INTO DemoTable VALUES('2018-01-16');
mysql> INSERT INTO DemoTable VALUES('2018-07-16');

সব রেকর্ড দেখানো

mysql> SELECT * FROM DemoTable;

আউটপুট

+------------+
| DueDate    |
+------------+
| 2019-06-14 |
| 2019-06-15 |
| 2019-06-16 |
| 2018-01-16 |
| 2018-07-16 |
+------------+
5 rows in set (0.00 sec)

আজকের তারিখের রেকর্ড বের করা (ধরে নেওয়া হয় আজ ২০১৯-০৬-১৬)

mysql> SELECT * FROM DemoTable WHERE DATE(DueDate) = CURDATE();

আউটপুট

+------------+
| DueDate    |
+------------+
| 2019-06-16 |
+------------+
1 row in set (0.03 sec)

ব্যাখ্যা: DATE(DueDate) — ডেটাইম কলাম হলে ডেট অংশ এক্সট্র্যাক্ট করে (এখানে ইতিমধ্যে DATE টাইপ, তাই অপ্রয়োজন কিন্তু নিরাপদ)। CURDATE() — বর্তমান তারিখ (টাইম ছাড়া)। উভয় তুলনা করে আজকের রেকর্ড বের করা হয়েছে।

পারফরম্যান্স টিপস: WHERE DueDate = CURDATE() (যদি কলাম DATE টাইপ হয়) ইনডেক্স ব্যবহার করতে পারে। DATE() ফাংশন কলামে লাগালে ইনডেক্স ব্যবহার হয় না (non-sargable)।

ডেটাইম কলামের জন্য: WHERE DueDate >= CURDATE() AND DueDate < CURDATE() + INTERVAL 1 DAY — ইনডেক্স বান্ধব।

  1. MySQL-এ VARCHAR ডেট টাইপের তালিকা থেকে সর্বোচ্চ তারিখ বের করা

  2. MySQL-এ DATE_FORMAT() দিয়ে DATETIME থেকে শুধু তারিখ (DD.MM.YYYY) বের করা

  3. MySQL কোয়েরি: 00:00 থেকে আজকের তারিখ পর্যন্ত ডেটা নির্বাচন করা

  4. MySQL-এ VARCHAR তারিখ কলামের সাথে বর্তমান তারিখ তুলনা করা