首页 > 解决方案 > 当时间到达指定日期时更改sql字段的值

问题描述

我有一个网站,您可以在其中注册

注册账号的状态默认为“Stand by”,然后网站管理员可以将该状态更改为:“admin”-“user”-“stand by”

到期日期也存储在数据库中

我想要做的是,当到期日期到期时,自动将该用户的状态更改为“待命”

我不知道如何做到这一点,感谢您的帮助!

例子 :

如果我们到达 2020 - 07 - 10,user4(以及“test”和“testt”)的状态应该更改为“Attente”(表示待命)

我的数据库:

数据库

标签: phpsql

解决方案


我建议使用视图:

create view v_t as
    select . . .,
           (case when now() >= expiring_date then 'Stand by' else status end) as status
    from t;

这会在读取视图时计算状态,因此您不必担心状态会发生变化。状态始终正确。

然后,在闲暇时,您可以使用作业更新数据中的状态。

使用这种方法,可以保证您的应用程序看到正确的状态。


推荐阅读