Computer >> Máy Tính >  >> Lập trình >> MySQL

MySQL DATE_ADD () để tăng một ngày dựa trên giá trị trong một cột khác?


Trước tiên, chúng ta hãy tạo một bảng với một trong các cột là Ngày đến hạn và một cột khác là "Thời gian lặp lại, hiển thị bao nhiêu lần, giả sử một người dùng được nhắc gửi thanh toán -

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

Chèn một số bản ghi vào bảng bằng lệnh chèn -

mysql> insert into DemoTable values('2019-01-23',3);
Query OK, 1 row affected (0.13 sec)

mysql> insert into DemoTable values('2019-06-22',6);
Query OK, 1 row affected (0.19 sec)

mysql> insert into DemoTable values('2019-03-28',2);
Query OK, 1 row affected (0.25 sec)

mysql> insert into DemoTable values('2017-07-25',6);
Query OK, 1 row affected (0.15 sec)

Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -

mysql> select *from DemoTable;

Đầu ra

Điều này sẽ tạo ra kết quả sau -

+------------+------------+
| DueDate    | RepeatTime |
+------------+------------+
| 2019-01-23 |          3 |
| 2019-06-22 |          6 |
| 2019-03-28 |          2 |
| 2017-07-25 |          6 |
+------------+------------+
4 rows in set (0.00 sec)

Đây là truy vấn tăng ngày dựa trên các giá trị trong một cột khác -

mysql> update DemoTable set DueDate=date_add(DueDate,interval RepeatTime MONTH)
where RepeatTime!=6;
Query OK, 2 rows affected (0.25 sec)
Rows matched: 2 Changed: 2 Warnings: 0

Hãy để chúng tôi kiểm tra bản ghi bảng một lần nữa -

mysql> select *from DemoTable;

Đầu ra

Điều này sẽ tạo ra kết quả sau -

+------------+------------+
| DueDate    | RepeatTime |
+------------+------------+
| 2019-04-23 | 3          |
| 2019-06-22 | 6          |
| 2019-05-28 | 2          |
| 2017-07-25 | 6          |
+------------+------------+
4 rows in set (0.00 sec)