Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Triển khai điều kiện khoảng cách ngày (INTERVAL) chính xác cho ngày đáo hạn trong MySQL

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ợp DAY_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ỳ.