我有以下查询,允许我获取我的网站的计划订阅的到期日期:
SELECT DATE_FORMAT( `expiry_date`, '%d %m %Y' )
FROM `plan_cbsubs_subscriptions`
WHERE `user_id` = '[user_id]'
因此,如果计划订阅在7月27日结束,则上述查询返回“27 07 2013”。现在我的目标是修改此查询,再添加3天,最后返回“30 07 2013”,即使实际价值很好“27 07 2013”。
我想可以在某处添加查询+3,但我不知道正确的语法。
答案 0 :(得分:1)
SELECT DATE_FORMAT(DATE_ADD(`expiry_date`, INTERVAL 3 DAY) , '%d %m %Y' )
FROM `plan_cbsubs_subscriptions`
WHERE `user_id` = '[user_id]'
答案 1 :(得分:1)
使用ADDDATE()
:
SELECT DATE_FORMAT( ADDDATE(`expiry_date`, 3), '%d %m %Y' )
FROM `plan_cbsubs_subscriptions`
WHERE `user_id` = '[user_id]'
如果您想减去天数,Fyi ADDDATE()
会接受负数:
ADDDATE(`expiry_date`, -3) -- 3 days before
Mysql也有SUBDATE()
,所以你也可以这样做:
SUBDATE(`expiry_date`, 3) -- 3 days before
答案 2 :(得分:0)
这样的事情应该有效:
SELECT DATE_FORMAT(DATE_ADD(`expiry_date`,INTERVAL 3 DAY), '%d %m %Y' )
FROM `plan_cbsubs_subscriptions`
WHERE `user_id` = '[user_id]';
减去3天:
SELECT DATE_FORMAT(DATE_SUB(`expiry_date`,INTERVAL 3 DAY), '%d %m %Y')
FROM `plan_cbsubs_subscriptions`
WHERE `user_id` = '[user_id]';
您可以在此处找到更多信息: MySQL DateAdd