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

Cộng 1 ngày vào cột DATE với INTERVAL trong MySQL

Giới thiệu

Sử dụng hàm DATE_ADD(date, INTERVAL expr unit) hoặc toán tử + INTERVAL để cộng/trừ khoảng thời gian vào ngày tháng.

1. Tạo bảng và dữ liệu

mysql> create table DemoTable (
    -> DueDate date
    -> ); 
Query OK, 0 rows affected (2.11 sec)

mysql> insert into DemoTable values('2019-01-21'); 
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values('2018-12-31'); 
Query OK, 1 row affected (0.47 sec)
mysql> insert into DemoTable values('2018-12-30'); 
Query OK, 1 row affected (0.28 sec)
mysql> insert into DemoTable values('2017-02-26'); 
Query OK, 1 row affected (0.47 sec)

2. Dữ liệu gốc

mysql> select *from DemoTable;
+------------+
| DueDate    |
+------------+
| 2019-01-21 |
| 2018-12-31 |
| 2018-12-30 |
| 2017-02-26 |
+------------+
4 rows in set (0.00 sec)

3. Cập nhật cộng 1 ngày

mysql> update DemoTable 
    -> set DueDate = date_add(DueDate, interval 1 day); 
Query OK, 4 rows affected (0.21 sec)
Rows matched: 4 Changed: 4 Warnings: 0

Cách viết tương đương:

SET DueDate = DueDate + INTERVAL 1 DAY;
SET DueDate = DATE_ADD(DueDate, INTERVAL 1 DAY);

4. Kết quả

mysql> select *from DemoTable;
+------------+
| DueDate    |
+------------+
| 2019-01-22 |
| 2019-01-01 |
| 2018-12-31 |
| 2017-02-27 |
+------------+
4 rows in set (0.00 sec)

Xử lý đúng ngày cuối tháng/năm: MySQL tự động xử lý ngày 31/12 + 1 ngày = 1/1 năm sau, 30/4 + 1 ngày = 1/5, năm nhuận...

Các INTERVAL unit phổ biến:

  • INTERVAL 1 DAY, INTERVAL 3 HOUR, INTERVAL 30 MINUTE
  • INTERVAL 1 MONTH, INTERVAL 1 YEAR
  • INTERVAL '1 12:30:00' DAY_SECOND (kết hợp ngày + thời gian)

Lưu ý: DATE_ADD trả về DATE nếu đầu vào DATE, DATETIME nếu đầu vào DATETIME.