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

Cộng thêm 5 ngày/giờ/phút/giây vào NOW() trong MySQL

Tóm tắt

Bài viết hướng dẫn cách cộng thêm khoảng thời gian (ngày, giờ, phút, giây) vào giá trị datetime hiện tại NOW() hoặc cột datetime bằng hàm INTERVAL.

Cú pháp chung

-- Cộng 5 ngày
NOW() + INTERVAL 5 DAY

-- Cộng 5 giờ
NOW() + INTERVAL 5 HOUR

-- Cộng 5 phút
NOW() + INTERVAL 5 MINUTE

-- Cộng 5 giây
NOW() + INTERVAL 5 SECOND

Ví dụ thực tế: Cập nhật ngày hết hạn

1. Tạo bảng

CREATE TABLE UserInformationExpire (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    UserName VARCHAR(10),
    UserInformationExpireDateTime DATETIME NOT NULL
);

2. Chèn dữ liệu mẫu

INSERT INTO UserInformationExpire (UserName, UserInformationExpireDateTime) VALUES
('Maxwell', '2019-02-09 23:56:27'),
('Carol',   '2018-11-21 15:45:21'),
('Bob',     '2019-01-22 16:30:35'),
('Larry',   '2017-12-25 17:20:33');

3. Cập nhật thêm 5 ngày cho Id = 1

UPDATE UserInformationExpire
SET UserInformationExpireDateTime = NOW() + INTERVAL 5 DAY
WHERE Id = 1;

Lưu ý: Ví dụ dùng NOW() nên kết quả phụ thuộc thời điểm chạy. Trong bài gốc dùng giá trị cố định để minh họa.

4. Kết quả sau cập nhật

+----+----------+-------------------------------+
| Id | UserName | UserInformationExpireDateTime |
+----+----------+-------------------------------+
| 1  | Maxwell  | 2019-02-14 23:56:27           |
+----+----------+-------------------------------+

Các biến thể hữu ích

DATE_ADD(NOW(), INTERVAL 3 MONTH)DATE_SUB(NOW(), INTERVAL 10 DAY)NOW() + INTERVAL '1-2' YEAR_MONTH
Mục đíchCú pháp
Cộng 3 tháng
Trừ 10 ngày
Cộng 1 năm 2 tháng

Mẹo

  • Dùng DATE_ADD() / DATE_SUB() cho rõ ý nghĩa, nhưng + INTERVAL ngắn gọn hơn.
  • Kết hợp với WHERE để cập nhật hàng loạt: UPDATE bang SET ngay = ngay + INTERVAL 7 DAY WHERE dieu_kien.