Tạo bảng demo
mysql> create table DemoTable (DueDate date); Query OK, 0 rows affected (0.92 sec)
Chèn dữ liệu
mysql> insert into DemoTable values('2019-01-12');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('2019-04-01');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values('2019-07-19');
Query OK, 1 row affected (0.15 sec)
Hiển thị dữ liệu gốc
mysql> select * from DemoTable;
Kết quả
+------------+ | DueDate | +------------+ | 2019-01-12 | | 2019-04-01 | | 2019-07-19 | +------------+ 3 rows in set (0.00 sec)
Cập nhật: Tăng 5 tháng cho mọi ngày đáo hạn
mysql> update DemoTable set DueDate = DATE_ADD(DueDate, INTERVAL 5 MONTH); Query OK, 3 rows affected (0.19 sec) Rows matched: 3 Changed: 3 Warnings: 0
Kiểm tra kết quả - Tất cả ngày đã tăng 5 tháng
mysql> select * from DemoTable;
Kết quả
+------------+ | DueDate | +------------+ | 2019-06-12 | | 2019-09-01 | | 2019-12-19 | +------------+ 3 rows in set (0.00 sec)
Giải thích DATE_ADD(date, INTERVAL expr unit):
INTERVAL 5 MONTH: Cộng 5 tháng.- Tự động xử lý cuối tháng: 01/31 + 1 tháng = 02/28 (hoặc 29 năm nhuận).
- Các đơn vị khác:
DAY, WEEK, MONTH, QUARTER, YEAR, HOUR, MINUTE, SECOND, và tổ hợpDAY_HOUR, YEAR_MONTH, v.v.
Hàm đối ứng: DATE_SUB(date, INTERVAL ...) để trừ.
Cú pháp ngắn gọn: DueDate + INTERVAL 5 MONTH (toán tử + hỗ trợ INTERVAL).
Ứng dụng: Gia hạn hợp đồng, tính ngày đáo hạn thanh toán, lập lịch định kỳ.