如何在MySQL中添加日期时间,如下例所示? (真的很抱歉我的英语不好,我不知道如何解释。)
示例:
TABLE成员
+----+------+---------------------+
| id | name | expiry_date |
+----+------+---------------------+
| 1 | A | 2016-02-09 09:20:00 |
+----+------+---------------------+
如果会员A购买套餐7天expiry_date
应该是:
+----+------+---------------------+
| id | name | expiry_date |
+----+------+---------------------+
| 1 | A | 2016-02-16 09:20:00 |
+----+------+---------------------+
两天后(2月11日),套餐将在5天后到期,然后会员A再次购买套餐7天expiry_date
应该是这样的:
+----+------+---------------------+
| id | name | expiry_date |
+----+------+---------------------+
| 1 | A | 2016-02-23 09:20:00 |
+----+------+---------------------+
现在包裹将在12天(5 + 7)过期。
我尝试过我的代码:
UPDATE member SET expiry_date = now() + INTERVAL 7 DAY WHERE id = 1
但它始终按当前日期时间和+ 7天设置,如:
如果今天是2016-02-11 09:20:00
当我运行我的代码expiry_date
时,会将日期时间从2016-02-11 09:20:00
(当前日期时间)设置为2016-02-18 09:20:00
。
但是我希望它将日期时间从2016-02-16 09:20:00
设置为2016-02-23 09:20:00
,就像上面的示例一样。
答案 0 :(得分:2)
您正在尝试增加表格中保存的日期,而不是现在发生的日期。您应该使用列名称,而不是NOW()
,而不是expiry_date
。
有两种方法可以做到这一点。第一个是,正如Vipin Jain指出的那样,你可以使用DATE_ADD
。但是,请使用您的列名:
UPDATE member SET expiry_date = DATE_ADD(expiry_date , INTERVAL 7 DAY) WHERE id = 1;
或者你可以这样做:
UPDATE member SET expiry_date = expiry_date + INTERVAL 7 DAY WHERE id = 1;
答案 1 :(得分:0)
试试这个
UPDATE member
SET expiry_date = DATE_ADD(expiry_date , INTERVAL 7 DAY)
WHERE id = 1;
了解更多信息https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-add