2009-07-17 48 views
3

我正在处理一个网站,人们可以订阅虚拟货币的某些东西。我需要把订阅在数据库中结束的日期。我的表有一个字段“过期”,这是一个日期。在MySQL中设置订阅日期

当用户延长他的订阅时,我需要在此日期添加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查询?

回答