PHP MYSQL从DB-MYSQL查询的日期返回最后3个月

PHP MYSQL从DB-MYSQL查询的日期返回最后3个月,mysql,sql,Mysql,Sql,我正在开发一个PHP/MySQL应用程序。我被什么东西缠住了。例如: MySQL表如下: id | deadline_date | reminder1 | reminder2 | reminder3 ______________________________________________________________ 1 2021-04-26 在我的上表中,截止日期为2021-04-26。然后,第一个提醒1将于2021-02-25发送,第二个提醒2将于2021-

我正在开发一个PHP/MySQL应用程序。我被什么东西缠住了。例如:

MySQL表如下:

id   |  deadline_date | reminder1   | reminder2 | reminder3
______________________________________________________________

 1       2021-04-26
在我的上表中,截止日期为2021-04-26。然后,第一个提醒1将于2021-02-25发送,第二个提醒2将于2021-03-25发送,第三个提醒3将于2021-04-25发送。因此,从截止日期起,这3个提醒必须在特定字段“提醒1”、“提醒2”和“提醒3”中计算和更新。因此,必须使用以下数据填充该表:

id   |  deadline_date | reminder1   | reminder2 | reminder3
______________________________________________________________

 1       2021-04-26     2021-02-25    2021-03-25   2021-04-25

有谁能指导我如何做到这一点?我不确定是否可以通过MYSQL查询更新查询实现这一点

您可以使用Interval来实现此目的

UPDATE YourTable
SET reminder3=DATE_ADD(deadline_date, INTERVAL -1 day),
reminder2=DATEA_ADD(DATE_ADD(deadline_date, INTERVAL -1 day), INTERVAL -1 MONTH),
reminder1=DATEA_ADD(DATE_ADD(deadline_date, INTERVAL -1 day), INTERVAL -2 MONTH)

dbfiddle

您可以使用Interval来实现此目的

DBFIDLE

您可以使用函数设置余数:

UPDATE mytable 
   set reminder1 = DATE_ADD(DATE_ADD(deadline_date, INTERVAL -2 MONTH), INTERVAL -1 DAY),
   reminder2 = DATE_ADD(DATE_ADD(deadline_date, INTERVAL -1 MONTH), INTERVAL -1 DAY), 
   reminder3 = DATE_ADD(deadline_date, INTERVAL -1 DAY)
您可以使用函数设置余数:

UPDATE mytable 
   set reminder1 = DATE_ADD(DATE_ADD(deadline_date, INTERVAL -2 MONTH), INTERVAL -1 DAY),
   reminder2 = DATE_ADD(DATE_ADD(deadline_date, INTERVAL -1 MONTH), INTERVAL -1 DAY), 
   reminder3 = DATE_ADD(deadline_date, INTERVAL -1 DAY)

谢谢,很好。谢谢,很好。非常感谢。非常感谢
INSERT INTO table1
  (`id`, `deadline_date`, `reminder1`, `reminder2`, `reminder3`)
VALUES
  ('1', '2021-04-26', NULL, NULL, NULL);
UPDATE table1 t1
SET t1.`reminder1` = t1.`deadline_date`  - INTERVAL 1 DAY - INTERVAL 2 MONTH,
t1.`reminder2` = t1.`deadline_date`  - INTERVAL 1 DAY - INTERVAL 1 MONTH,
t1.`reminder3` = t1.`deadline_date`  - INTERVAL 1 DAY;
SELECT * FROM table1
id | deadline_date | reminder1 | reminder2 | reminder3 -: | :------------ | :--------- | :--------- | :--------- 1 | 2021-04-26 | 2021-02-25 | 2021-03-25 | 2021-04-25
UPDATE mytable 
   set reminder1 = DATE_ADD(DATE_ADD(deadline_date, INTERVAL -2 MONTH), INTERVAL -1 DAY),
   reminder2 = DATE_ADD(DATE_ADD(deadline_date, INTERVAL -1 MONTH), INTERVAL -1 DAY), 
   reminder3 = DATE_ADD(deadline_date, INTERVAL -1 DAY)