MySQL-এ ইন-বিল্ট DATE_ADD() ফাংশন ব্যবহার করে এটি করা যায়। সিনট্যাক্স:
UPDATE yourTableName SET yourDateColumnName = DATE_ADD(yourDateColumnName, INTERVAL 1 YEAR);
সিনট্যাক্স বুঝতে একটি টেবিল তৈরি করি:
mysql> CREATE TABLE UpdateDate (
-> Id INT,
-> DueDate DATETIME
-> ); Query OK, 0 rows affected (0.76 sec)
ইনসার্ট কমান্ড দিয়ে কিছু রেকর্ড ইনসার্ট করি:
mysql> INSERT INTO UpdateDate VALUES(1001,'2012-5-21'); Query OK, 1 row affected (0.17 sec) mysql> INSERT INTO UpdateDate VALUES(1002,'2013-8-2'); Query OK, 1 row affected (0.17 sec) mysql> INSERT INTO UpdateDate VALUES(1003,'2014-2-27'); Query OK, 1 row affected (0.10 sec) mysql> INSERT INTO UpdateDate VALUES(1004,'2016-11-1'); Query OK, 1 row affected (0.18 sec) mysql> INSERT INTO UpdateDate VALUES(1005,'2017-12-24'); Query OK, 1 row affected (0.12 sec)
সিলেক্ট কমান্ড দিয়ে সব রেকর্ড দেখি:
mysql> SELECT * FROM UpdateDate;
আউটপুট
+------+---------------------+ | Id | DueDate | +------+---------------------+ | 1001 | 2012-05-21 00:00:00 | | 1002 | 2013-08-02 00:00:00 | | 1003 | 2014-02-27 00:00:00 | | 1004 | 2016-11-01 00:00:00 | | 1005 | 2017-12-24 00:00:00 | +------+---------------------+ 5 rows in set (0.00 sec)
DATE_ADD() এবং INTERVAL ব্যবহার করে ডেটা ১ বছর আপডেট করার ক্যোয়ারি:
mysql> UPDATE UpdateDate SET DueDate = DATE_ADD(DueDate, INTERVAL 1 YEAR); Query OK, 5 rows affected (0.15 sec) Rows matched: 5 Changed: 5 Warnings: 0
সিলেক্ট কমান্ড দিয়ে টেবিল চেক করি:
mysql> SELECT * FROM UpdateDate;
আউটপুট
+------+---------------------+ | Id | DueDate | +------+---------------------+ | 1001 | 2013-05-21 00:00:00 | | 1002 | 2014-08-02 00:00:00 | | 1003 | 2015-02-27 00:00:00 | | 1004 | 2017-11-01 00:00:00 | | 1005 | 2018-12-24 00:00:00 | +------+---------------------+ 5 rows in set (0.00 sec)
উপরের আউটপুটে দেখুন, সব মান আপডেট হয়েছে। নির্দিষ্ট ডেটাটাইম আপডেট করতে চাইলে WHERE কন্ডিশন ব্যবহার করুন।