如何查询日期并在结果中添加3天?

时间:2013-07-20 15:34:35

标签: mysql date-arithmetic

我有以下查询,允许我获取我的网站的计划订阅的到期日期:

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,但我不知道正确的语法。

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