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

Cập nhật giá trị ngày giờ khi chèn (INSERT) trong MySQL

Sử dụng hàm DATE_ADD() với INTERVAL ngay trong câu INSERT để tính toán ngày giờ trước khi lưu.

Tạo bảng demo

mysql> create table DemoTable816 (DueDate datetime);
Query OK, 0 rows affected (0.45 sec)

Chèn và cùng lúc cập nhật ngày giờ (cộng thêm khoảng thời gian)

mysql> insert into DemoTable816 values(DATE_ADD(NOW(), INTERVAL 3 MINUTE));
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable816 values(DATE_ADD('2018-01-21 00:00:00', INTERVAL 3 HOUR));
Query OK, 1 row affected (0.52 sec)
mysql> insert into DemoTable816 values(DATE_ADD('2016-11-11 12:40:00', INTERVAL 3 DAY));
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable816 values(DATE_ADD('2018-12-01 11:00:00', INTERVAL 3 MONTH));
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable816 values(DATE_ADD('2011-03-21 10:00:00', INTERVAL 3 YEAR));
Query OK, 1 row affected (0.16 sec)

Hiển thị kết quả

mysql> select * from DemoTable816;

Kết quả - Các ngày đã được cộng thêm khoảng thời gian tương ứng

+---------------------+
| DueDate             |
+---------------------+
| 2019-08-03 13:08:43 |  -- NOW() + 3 phút
| 2018-01-21 03:00:00 |  -- 2018-01-21 00:00:00 + 3 giờ
| 2016-11-14 12:40:00 |  -- 2016-11-11 12:40:00 + 3 ngày
| 2019-03-01 11:00:00 |  -- 2018-12-01 11:00:00 + 3 tháng
| 2014-03-21 10:00:00 |  -- 2011-03-21 10:00:00 + 3 năm
+---------------------+
5 rows in set (0.00 sec)

Giải thích DATE_ADD(date, INTERVAL value unit):

Đơn vị (unit)Ví dụKết quả
MINUTEINTERVAL 3 MINUTE+3 phút
HOURINTERVAL 3 HOUR+3 giờ
DAYINTERVAL 3 DAY+3 ngày
MONTHINTERVAL 3 MONTH+3 tháng
YEARINTERVAL 3 YEAR+3 năm

Cú pháp thay thế (ngắn gọn):

INSERT INTO DemoTable816 VALUES (NOW() + INTERVAL 3 MINUTE);
INSERT INTO DemoTable816 VALUES ('2018-01-21' + INTERVAL 3 HOUR);

Hàm đối ứng trừ thời gian: DATE_SUB(date, INTERVAL ...) hoặc date - INTERVAL ....

Ứng dụng: Tự động tính deadline, hạn chót, lịch nhắc nhở, scheduling ngay khi INSERT.