2009-07-17 50 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查詢?

回答