เมื่อต้องการเปลี่ยนแปลงเฉพาะส่วนของวันที่ในคอลัมน์ DATETIME โดยคงค่าเวลาไว้เหมือนเดิม สามารถใช้ INTERVAL ร่วมกับ UPDATE ได้
สร้างตารางตัวอย่าง
mysql> create table DemoTable (
DueDate datetime );
Query OK, 0 rows affected (0.56 sec)
เพิ่มข้อมูลตัวอย่าง
mysql> insert into DemoTable values('2017-08-12 10:30:45'); Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable values('2015-09-21 12:00:00'); Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values('2018-12-31 11:45:56'); Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('2016-01-02 01:23:04'); Query OK, 1 row affected (0.14 sec)
แสดงข้อมูลก่อนอัปเดต
mysql> select *from DemoTable;
+-----------------------+ | DueDate | +-----------------------+ | 2017-08-12 10:30:45 | | 2015-09-21 12:00:00 | | 2018-12-31 11:45:56 | | 2016-01-02 01:23:04 | +-----------------------+ 4 rows in set (0.00 sec)
คิวรี่อัปเดตเพิ่ม 1 ปี (คงเวลาไว้)
mysql> update DemoTable
set DueDate=DueDate+interval 1 year;
Query OK, 4 rows affected (0.16 sec)
Rows matched: 4 Changed: 4 Warnings: 0
ตรวจสอบผลลัพธ์หลังอัปเดต
mysql> select *from DemoTable;
+-----------------------+ | DueDate | +-----------------------+ | 2018-08-12 10:30:45 | | 2016-09-21 12:00:00 | | 2019-12-31 11:45:56 | | 2017-01-02 01:23:04 | +-----------------------+ 4 rows in set (0.00 sec)
รูปแบบ INTERVAL ที่ใช้ได้
INTERVAL 1 YEAR- เพิ่ม/ลด ปีINTERVAL 1 MONTH- เพิ่ม/ลด เดือนINTERVAL 1 DAY- เพิ่ม/ลด วันINTERVAL 1 HOUR,MINUTE,SECOND- สำหรับเวลา- ใช้เครื่องหมายลบ (-) เพื่อลดค่า เช่น
DueDate - INTERVAL 6 MONTH
หมายเหตุ
การใช้ DATE_ADD() หรือ DATE_SUB() ทำได้เช่นกัน เช่น DATE_ADD(DueDate, INTERVAL 1 YEAR)