ใช้ DATE_ADD(date_col, INTERVAL other_col MONTH) เพิ่มเดือนตามค่าในคอลัมน์ RepeatTime
สร้างตารางตัวอย่าง
mysql> CREATE TABLE DemoTable (
-> DueDate DATE,
-> RepeatTime INT
-> );
เพิ่มข้อมูลตัวอย่าง
mysql> INSERT INTO DemoTable VALUES('2019-01-23', 3);
mysql> INSERT INTO DemoTable VALUES('2019-06-22', 6);
mysql> INSERT INTO DemoTable VALUES('2019-03-28', 2);
mysql> INSERT INTO DemoTable VALUES('2017-07-25', 6);
แสดงข้อมูล
mysql> SELECT * FROM DemoTable;
ผลลัพธ์:
+------------+------------+ | DueDate | RepeatTime | +------------+------------+ | 2019-01-23 | 3 | | 2019-06-22 | 6 | | 2019-03-28 | 2 | | 2017-07-25 | 6 | +------------+------------+
คำสั่งอัปเดต DueDate เพิ่มเดือนตาม RepeatTime (ยกเว้นที่ = 6)
mysql> UPDATE DemoTable SET DueDate = DATE_ADD(DueDate, INTERVAL RepeatTime MONTH) WHERE RepeatTime != 6;
ตรวจสอบผลลัพธ์
mysql> SELECT * FROM DemoTable;
ผลลัพธ์:
+------------+------------+ | DueDate | RepeatTime | +------------+------------+ | 2019-04-23 | 3 | | 2019-06-22 | 6 | | 2019-05-28 | 2 | | 2017-07-25 | 6 | +------------+------------+
คำอธิบาย: DATE_ADD(DueDate, INTERVAL RepeatTime MONTH) ใช้ค่าจากคอลัมน์ RepeatTime เป็นจำนวนเดือน | WHERE RepeatTime != 6 ข้ามแถวที่ RepeatTime = 6