1

如果我每天使用 cron 作业运行并检查日期是否早于 30 天然后将状态更改为过期,我有一个表,其中我有列名“日期”和另一个名为“状态”的列,什么代码我需要使用 mysqli 和 php 运行吗?

4

3 回答 3

2

尝试这个:

UPDATE table SET status="expired" where YOURDATEFIELD < date_sub(now(), interval 1 month);
于 2013-10-07T05:01:42.550 回答
2

MySQL 事件调度器更好。

  1. 通过在 PhpMyAdmin 或 MySQL 命令提示符中执行以下查询来启动 MySQL 事件调度程序。

输入这个。

SET GLOBAL event_scheduler = 1;
  1. 这将更新您的表格。

    CREATE EVENT newEvent ON SCHEDULE EVERY 1 DAY DO UPDATE table SET status="expired" WHERE datefield<=CURRENT_DATE - INTERVAL 30 DAY;

于 2013-10-07T05:17:38.763 回答
1

在您的 UPDATE 查询中使用INTERVAL..

UPDATE table SET status="expired" WHERE datefield<=CURRENT_DATE - INTERVAL 30 DAY
于 2013-10-07T04:53:09.593 回答