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

Cộng thêm 45 ngày vào cột datetime MySQL, hiển thị cột mới

Vấn đề: Tính ngày mới bằng cách cộng khoảng thời gian (interval) vào cột ngày

Cần thêm 45 ngày vào cột DueTime (DATETIME) và hiển thị kết quả trong cột ManyDays.

Giải pháp: Hàm DATE_ADD()

Cú pháp: DATE_ADD(date, INTERVAL expr unit).

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

CREATE TABLE DemoTable (DueTime DATETIME);
INSERT INTO DemoTable VALUES
('2017-10-21'), ('2019-12-14'), ('2018-11-26'), ('2014-06-16');

2. Truy vấn cộng 45 ngày

SELECT DueTime, DATE_ADD(DueTime, INTERVAL 45 DAY) AS ManyDays 
FROM DemoTable;

3. Kết quả

+---------------------+---------------------+
| DueTime             | ManyDays            |
+---------------------+---------------------+
| 2017-10-21 00:00:00 | 2017-12-05 00:00:00 |
| 2019-12-14 00:00:00 | 2020-01-28 00:00:00 |
| 2018-11-26 00:00:00 | 2019-01-10 00:00:00 |
| 2014-06-16 00:00:00 | 2014-07-31 00:00:00 |
+---------------------+---------------------+

Các đơn vị INTERVAL phổ biến

  • DAY, WEEK, MONTH, YEAR
  • HOUR, MINUTE, SECOND
  • QUARTER (quý), MICROSECOND
  • Kết hợp: INTERVAL '1 12' DAY_HOUR (1 ngày 12 giờ)

Hàm liên quan

  • DATE_SUB(date, INTERVAL ...) – Trừ khoảng thời gian.
  • ADDDATE(date, INTERVAL ...) – Alias của DATE_ADD.
  • SUBDATE(date, INTERVAL ...) – Alias của DATE_SUB.
  • DATEDIFF(date1, date2) – Số ngày chênh lệch (date1 - date2).

Lưu ý

  • DATE_ADD trả về DATETIME nếu input là DATETIME/TIMESTAMP, trả về DATE nếu input là DATE.
  • Tự động xử lý ngày cuối tháng, năm nhuận.
  • Có thể dùng trực tiếp trong WHERE: WHERE DueTime > DATE_ADD(NOW(), INTERVAL 30 DAY).