[英]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.