Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ใช้ DATE_ADD เพิ่มเดือนตามค่าในอีกคอลัมน์หนึ่งใน MySQL

ใช้ 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