Giới thiệu
Để thực hiện phép toán ngày tháng, MySQL cung cấp từ khóa INTERVAL kết hợp với đơn vị thời gian (DAY, MONTH, YEAR, HOUR...). Bài viết demo cộng 30 ngày vào cột ArrivalDate.
Ví dụ thực hành
1. Tạo bảng DemoTable814
mysql> CREATE TABLE DemoTable814 (ArrivalDate DATE);
2. Chèn dữ liệu
mysql> INSERT INTO DemoTable814 VALUES
('2018-12-02'),('2017-03-12'),('2019-12-23'),('2016-06-01'),('2019-08-03');
3. Truy vấn cộng 30 ngày
mysql> SELECT ArrivalDate + INTERVAL 30 DAY FROM DemoTable814;
4. Kết quả
+------------------------------+
| ArrivalDate + INTERVAL 30 DAY |
+------------------------------+
| 2019-01-01 |
| 2017-04-11 |
| 2020-01-22 |
| 2016-07-01 |
| 2019-09-02 |
+------------------------------+
Cập nhật dữ liệu (UPDATE)
-- Cập nhật trực tiếp cột
UPDATE DemoTable814 SET ArrivalDate = ArrivalDate + INTERVAL 30 DAY;
-- Hoặc chỉ cập nhật một số hàng
UPDATE DemoTable814 SET ArrivalDate = ArrivalDate + INTERVAL 30 DAY WHERE Id = 1;
Các đơn vị INTERVAL thường dùng
| Đơn vị | Ví dụ |
|---|---|
SECOND | INTERVAL 30 SECOND |
MINUTE | INTERVAL 15 MINUTE |
HOUR | INTERVAL 2 HOUR |
DAY | INTERVAL 30 DAY |
MONTH | INTERVAL 1 MONTH |
YEAR | INTERVAL 1 YEAR |
Lưu ý
- Phép cộng/trừ tháng có thể thay đổi ngày (ví dụ 31/01 + 1 tháng = 28/02 hoặc 29/02).
- Dùng
DATE_ADD()/DATE_SUB()cho cú pháp hàm:DATE_ADD(ArrivalDate, INTERVAL 30 DAY). - Có thể kết hợp nhiều đơn vị:
INTERVAL 1 YEAR 2 MONTH.