MySQL-এ DATE_ADD() এবং MONTH() ফাংশন ব্যবহার করে তারিখ কলামের শুধু মাস অংশ আপডেট করা যায় (বছর এবং দিন অপরিবর্তিত রাখা)।
উদাহরণ: টেবিল তৈরি এবং ডেটা ইনসার্ট
mysql> create table DemoTable861(AdmissionDate date); Query OK, 0 rows affected (1.22 sec)
mysql> insert into DemoTable861 values('2019-01-21');
Query OK, 1 row affected (0.31 sec)
mysql> insert into DemoTable861 values('2018-01-01');
Query OK, 1 row affected (0.49 sec)
mysql> insert into DemoTable861 values('2016-01-02');
Query OK, 1 row affected (1.27 sec)
mysql> insert into DemoTable861 values('2018-01-14');
Query OK, 1 row affected (0.47 sec)
সকল রেকর্ড দেখানো (সব জানুয়ারি)
mysql> select * from DemoTable861;
+---------------+ | AdmissionDate | +---------------+ | 2019-01-21 | | 2018-01-01 | | 2016-01-02 | | 2018-01-14 | +---------------+ 4 rows in set (0.00 sec)
মাস ১ (জানুয়ারি) থেকে ১ মাস পেছনে (ডিসেম্বর) আপডেট
mysql> update DemoTable861
set AdmissionDate=date_add(AdmissionDate,Interval -1 month)
where month(AdmissionDate)=01;
Query OK, 4 rows affected (0.42 sec)
Rows matched: 4 Changed: 4 Warnings: 0
আপডেট後の রেকর্ড দেখানো (সব ডিসেম্বর)
mysql> select * from DemoTable861;
+---------------+ | AdmissionDate | +---------------+ | 2018-12-21 | | 2017-12-01 | | 2015-12-02 | | 2017-12-14 | +---------------+ 4 rows in set (0.00 sec)
ব্যাখ্যা
MONTH(AdmissionDate)=01- জানুয়ারি (০১) মাসवाले রো ফিল্টারDATE_ADD(AdmissionDate, INTERVAL -1 MONTH)- ১ মাস বিয়োগ (পেছনে যাওয়া)- দিন (২১, ০১, ০২, ১৪) এবং বছর (২০১৯, ২০১৮, ২০১৬) অপরিবর্তিত
- জানুয়ারি-১ তারিখে ১ মাস বিয়োগ করলে গত বছরের ডিসেম্বর-৩১ হয় (MySQL হ্যান্ডেল করে)
অন্যান্য মাস ম্যানিপুলেশন
| উদ্দেশ্য | কোয়েরি |
|---|---|
| মাস ১ বাড়ানো | DATE_ADD(date, INTERVAL 1 MONTH) |
| নির্দিষ্ট মাসে সেট (যেমন ০৬) | DATE_ADD(date, INTERVAL (6 - MONTH(date)) MONTH) |
| বছরের শুরুতে যাওয়া | DATE_SUB(date, INTERVAL (MONTH(date)-1) MONTH) |
| মাসের শেষ দিন | LAST_DAY(date) |