sql从今天开始计算日期和持续时间

时间:2014-01-20 14:08:22

标签: mysql sql

我有一个名为订阅者的表 它有

  • 用户<< ===== memebers
  • status<< =====表示活动或禁用0或1
  • 日期<< =====开始日期:2013-12-06
  • 持续时间<< =====这里我设置为30天

所以我在这里尝试做的是从开始日期和当前日期和持续时间计算

如果持续时间30天过期,则将状态设置为0

这是代码

mysql_query("UPDATE subscribers SET status=1, WHERE status = 0 and (TO_DAYS(date) + duration) - TO_DAYS(NOW())  < 0");

抱歉我的英文,谢谢你的帮助

1 个答案:

答案 0 :(得分:0)

您的架构和方法都可以

您只是语法错误:在,

之前移除WHERE入侵者

同样 Vinicius Monteiro 说:

  

如果该字段始终更新,请考虑不使用该字段,仅使用SELECT

因此您的查询应如下所示:

UPDATE subscribers SET status=0 WHERE (TO_DAYS(date) + duration) - TO_DAYS(NOW())  < 0

如果你有:sql_safe_updates=1,之前的更新会给你一个错误。 如果是这种情况在谷歌搜索:“MySQL禁用安全更新”