在MySQL中设置订阅日期

我正在与一个网站打交道,人们可以在其中订购某些虚拟货币.我需要在数据库中放置订阅结束的日期.我的表格中有一个“到期”字段,它是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查询?

最佳答案
MIN()MAX()函数用于分组:您希望改为LEAST()GREATEST().

相关文章

在正式开始之前,我们先来看下 MySQL 服务器的配置和版本号信...
> [合辑地址:MySQL全面瓦解](https://www.cnblogs.c...
物理服务机的CPU、内存、存储设备、连接数等资源有限,某个时...
1 回顾 上一节我们详细讲解了如何对数据库进行分区操作,包括...
navicat查看某个表的所有字段的详细信息 navicat设计表只能一...
文章浏览阅读4.3k次。转载请把头部出处链接和尾部二维码一起...