【问题标题】:Setting subscription dates in MySQL在 MySQL 中设置订阅日期
【发布时间】:2009-07-17 12:23:05
【问题描述】:

我正在处理一个网站,人们可以在该网站上订阅某些东西以获得虚拟货币。我需要将订阅结束的日期放在数据库中。我的表有一个“过期”字段,即 DATE。

当用户延长他的订阅时,我需要在这个日期上增加 1 个月。但是,如果订阅已经过期,我想将“过期”设置为从现在起 1 个月,而不是从订阅过期后的 1 个月。

我试过了:

UPDATE shop_user_rights SET expiration = ADDDATE(MAX(expiration, CURDATE()), INTERVAL 1 MONTH);

UPDATE shop_user_rights SET expiration = FROM_UNIXTIME(
 MIN(
  UNIX_TIMESTAMP(expiration),
  UNIX_TIMESTAMP(CURDATE())
 )
),
expiration = ADDDATE(expiration, INTERVAL 1 MONTH);

但两者都给出语法错误。有没有办法在 1 个查询中做到这一点,还是我必须事先使用一些 SELECT 查询?

【问题讨论】:

    标签: sql mysql date timestamp


    【解决方案1】:

    MIN()MAX() 函数用于分组:您需要 LEAST()GREATEST()

    【讨论】:

      猜你喜欢
      • 2014-07-12
      • 2015-04-16
      • 2014-09-27
      • 1970-01-01
      • 2020-02-14
      • 2016-03-20
      • 2016-09-01
      • 2015-10-07
      • 1970-01-01
      相关资源
      最近更新 更多