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

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

MySQL-এ স্ট্রিং ফরম্যাটে সংরক্ষিত তারিখকে বর্তমান তারিখের সাথে তুলনা করতে STR_TO_DATE() ফাংশন ব্যবহার করে স্ট্রিংকে DATE টাইপে কনভার্ট করতে হয়, তারপর CURDATE() দিয়ে মিলিয়ে দেখা হয়।

সিনট্যাক্স

SELECT * FROM yourTableName 
WHERE STR_TO_DATE(yourColumnName, 'yourFormatSpecifier') = CURDATE();

উদাহরণ (মান লইয়া: আজ ২৭/১০/২০১৯)

১. টেবিল তৈরি করুন

mysql> CREATE TABLE DemoTable (
    -> JoiningDate VARCHAR(40)
    -> );

২. বিভিন্ন বছরের একই তারিখ ইনসার্ট করুন

mysql> INSERT INTO DemoTable VALUES('27/10/2017');
mysql> INSERT INTO DemoTable VALUES('27/10/2018');
mysql> INSERT INTO DemoTable VALUES('27/10/2019');
mysql> INSERT INTO DemoTable VALUES('27/10/2020');

৩. সব রেকর্ড দেখুন

mysql> SELECT * FROM DemoTable;

আউটপুট:

+-------------+
| JoiningDate |
+-------------+
| 27/10/2017  |
| 27/10/2018  |
| 27/10/2019  |
| 27/10/2020  |
+-------------+

৪. বর্তমান তারিখের রেকর্ড খুঁজুন

mysql> SELECT * FROM DemoTable 
    -> WHERE STR_TO_DATE(JoiningDate, '%d/%m/%Y') = CURDATE();

৫. ফলাফল (আজ ২৭/১০/২০১৯ হলে)

+-------------+
| JoiningDate |
+-------------+
| 27/10/2019  |
+-------------+

ফরম্যাট স্পেসিফায়ার:

  • %d - দিন (০১-৩১)
  • %m - মাস (০১-১২)
  • %Y - বছর (৪ অঙ্ক)
  • %y - বছর (২ অঙ্ক)

সতর্কতা: স্ট্রিং কলামে ইনডেক্স কাজ করে না, বড় টেবিলে পারফরম্যান্স কম হতে পারে। সম্ভব হলে DATE/DATETIME টাইপ ব্যবহার করুন।

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

  2. MySQL에서 GROUP BY로 그룹핑하며 합계 구하기

  3. MySQL-এ বর্তমান তারিখ (NOW/CURDATE) থেকে ছোট তারিখের রেকর্ড বের করা

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