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

MySQL-এ তারিখ স্ট্রিং থেকে বছর বের করে রেকর্ড আপডেট করা (YEAR + STR_TO_DATE)

ভিন্ন ফরম্যাটে সংরক্ষিত তারিখ স্ট্রিং (যেমন '10/12/2010') থেকে বছর বের করে শর্তানুযায়ী রেকর্ড আপডেট করতে STR_TO_DATE() এবং YEAR() ফাংশন সংমিশ্রণ ব্যবহার করা হয়।

টেবিল ও ডেটা তৈরি

mysql> CREATE TABLE DemoTable1924 (
    UserName VARCHAR(20),
    UserJoiningDate VARCHAR(40)
);

mysql> INSERT INTO DemoTable1924 VALUES
    ('Chris', '10/12/2010'),
    ('David', '20/01/2011'),
    ('Mike', '20/01/2010'),
    ('Carol', '26/04/2013');

আপডেটের আগে

mysql> SELECT * FROM DemoTable1924;
+----------+-----------------+
| UserName | UserJoiningDate |
+----------+-----------------+
| Chris    | 10/12/2010      |
| David    | 20/01/2011      |
| Mike     | 20/01/2010      |
| Carol    | 26/04/2013      |
+----------+-----------------+

আপডেট কোয়ারী: ২০১০ সালের রেকর্ডগুলোর UserName 'Robert' করা

mysql> UPDATE DemoTable1924
    SET UserName = 'Robert'
    WHERE YEAR(STR_TO_DATE(UserJoiningDate, '%d/%m/%Y')) = 2010;

ফাংশন ব্যাখ্যা:

  • STR_TO_DATE(str, '%d/%m/%Y') — স্ট্রিংকে DATE টাইপে রূপান্তর (দিন/মাস/বছর)।
  • YEAR(date) — তারিখ থেকে বছর বের করে।

আউটপুট: Query OK, 2 rows affected (0.00 sec)

আপডেটের পর

mysql> SELECT * FROM DemoTable1924;
+----------+-----------------+
| UserName | UserJoiningDate |
+----------+-----------------+
| Robert   | 10/12/2010      |
| David    | 20/01/2011      |
| Robert   | 20/01/2010      |
| Carol    | 26/04/2013      |
+----------+-----------------+

সাধারণ ডেট ফরম্যাট স্পেসিফায়ার

স্পেসিফায়ারঅর্থউদাহরণ
%dদিন (০১-৩১)10
%mমাস (০১-১২)12
%Yবছর (৪ অঙ্ক)2010
%yবছর (২ অঙ্ক)10

পারফরম্যান্স টিপ

বড় টেবিলে ফাংশন-ভিত্তিক WHERE ক্লজ ইন্ডেক্স ব্যবহার করতে পারে না। সমাধান:

  • গেনারেটেড কলাম + ইন্ডেক্স (MySQL 5.7+)
  • অথবা তারিখ সংরক্ষণের জন্য নেটিভ DATE/DATETIME টাইপ ব্যবহার করুন।

  1. MySQL에서 STR_TO_DATE로 날짜 형식 변환 후 특정 날짜 이후 레코드 조회

  2. MySQL-এ RLIKE ব্যবহার করে একাধিক শব্দ দিয়ে রেকর্ড ফিল্টার করা

  3. MySQL-এ নির্দিষ্ট তারিখের রেকর্ড গণনা করা (COUNT + DATE)

  4. MySQL-এ DATE_ADD ব্যবহার করে টেবিলের তারিখ আপডেট করা (বছর যোগ/বিয়োগ)