การใช้ INTERVAL เพื่อบวกวันที่
MySQL รองรับการคำนวณวันที่ด้วยคีย์เวิร์ด INTERVAL รูปแบบ: date + INTERVAL n UNIT
หน่วยเวลาที่ใช้ได้
DAY,WEEK,MONTH,YEARHOUR,MINUTE,SECONDQUARTER(ไตรมาส)
ตัวอย่าง: เพิ่ม 30 วันให้ ArrivalDate
mysql> create table DemoTable814(ArrivalDate date);
Query OK, 0 rows affected (0.58 sec)
mysql> insert into DemoTable814 values('2018-12-02');
mysql> insert into DemoTable814 values('2017-03-12');
mysql> insert into DemoTable814 values('2019-12-23');
mysql> insert into DemoTable814 values('2016-06-01');
mysql> insert into DemoTable814 values('2019-08-03');
คำสั่ง SELECT
mysql> select ArrivalDate, ArrivalDate + INTERVAL 30 DAY as NewDate from DemoTable814;
ผลลัพธ์:
+-------------+------------+
| ArrivalDate | NewDate |
+-------------+------------+
| 2018-12-02 | 2019-01-01 |
| 2017-03-12 | 2017-04-11 |
| 2019-12-23 | 2020-01-22 |
| 2016-06-01 | 2016-07-01 |
| 2019-08-03 | 2019-09-02 |
+-------------+------------+
การ UPDATE จริง (เปลี่ยนข้อมูลในตาราง)
mysql> update DemoTable814 set ArrivalDate = ArrivalDate + INTERVAL 30 DAY;
ฟังก์ชัน DATE_ADD() ทางเลือก
SELECT DATE_ADD(ArrivalDate, INTERVAL 30 DAY) FROM DemoTable814;
UPDATE DemoTable814 SET ArrivalDate = DATE_ADD(ArrivalDate, INTERVAL 30 DAY);
สรุป
ใช้ + INTERVAL n UNIT หรือ DATE_ADD() สำหรับคำนวณวันที่ รองรับหน่วยหลากหลาย และจัดการปีอธิกสุรทิน/เดือนที่มีวันที่ต่างกันอัตโนมัติ