我的表中有发送日期和状态。我想在 10 天后自动更新状态。
假设sent_date是24/03/2018并且状态是Sent/Received。因此,在 2018 年 4 月 4 日,状态应自动更新为“已中止”。
我知道我必须使用 Date_Add,但出于测试目的,我正在使用 Date_Sub。
我尝试过的:
CREATE EVENT rot ON SCHEDULE EVERY 1 day DO
update barter_proposals
set proposal_status="Aborted"
WHERE sent_date=DATE_SUB(CURDATE(), INTERVAL 1 day )
AND proposal_status = "Sent/Received"
所以在这里,CURDATE 获取系统的日期(24/03/2018),并且它正在将 23/03/2018 状态更新为 Aborted..这工作正常。
CREATE EVENT rot ON SCHEDULE EVERY 1 day DO
update barter_proposals
set proposal_status="Aborted"
WHERE sent_date=DATE_SUB(sent_date, INTERVAL 1 day )
AND proposal_status = "Sent/Received"
表中的sent_date可以是任何内容。因此,对于这一点,它无法正常工作。需要进行哪些更改才能使状态在 10 天后自动更新?
最佳答案
CREATE EVENT rot ON SCHEDULE EVERY 1 day DO
update barter_proposals
set proposal_status="Aborted"
WHERE sent_date=DATE(CURDATE()-10)
AND proposal_status = "Sent/Received"
关于mysql - 如何使用事件调度程序在 10 天后自动更新状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49462103/