簡體   English   中英

在MySQL中設置訂閱日期

[英]Setting subscription dates in 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查詢?

MIN()MAX()函數用於分組:您需要LEAST()GREATEST()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM