mysql - 如何使用事件调度程序在 10 天后自动更新状态?

标签 mysql

我的表中有发送日期和状态。我想在 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/

相关文章:

mysql - Rails first_or_create!在数据库表中创建空值

.net - 尝试读取 MySQL 中流错误的结尾

php - 如何 MySQL SELECT 并按列排序并按不同表中的另一个键排序

mysql - 使用 select sql 将两个表显示为一个表

php - 如何选择要检查的 session 数组和数据库项

php - 从输出的数字中减去%并显示新的数字

mysql - SQL 中分组属性的不同值

sql - 在长插入期间对 MyISAM 表的读访问?

mysql - 消除重复名称

c# - 连接Godaddy mysql服务器时出现错误