PHP MYSQL从DB-MYSQL查询的日期返回最后3个月
我正在开发一个PHP/MySQL应用程序。我被什么东西缠住了。例如: MySQL表如下: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-
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)