2011-10-19 181 views
31

我在MySQL中有一个表。什么是SQL语句看起来像表中添加说2天的当前日期值?MySQL将日期添加到日期

UPDATE classes 
SET 
date = date + 1 
where id = 161 

这增加了一秒的价值,我不想更新时间,我想补充两天?

+0

可能的重复[在db中添加30天的日期](http://stackoverflow.com/questions/1609377/add-30-days-for-date-in-db) – JJJ

回答

69

假设你的领域是date型(或类似):

SELECT DATE_ADD(`your_field_name`, INTERVAL 2 DAY) 
FROM `table_name`; 

根据您提供它可能看起来像这样的例子:

​​
+0

它的日期时间...将这个仍然工作? – Beginner

+0

是的,它也适用于日期时间类型。 – Bjoern

1

您的需求:

UPDATE classes 
SET `date` = DATE_ADD(`date`, INTERVAL 2 DAY) 
WHERE id = 161 
5
UPDATE table SET nameofdatefield = ADDDATE(nameofdatefield, 2) WHERE ... 
+0

感谢您将日期添加到日期字段的替代方法。我一直在寻找一种使用包含天数的存储过程参数来增加日期的方法。不幸的是,DATE_ADD语法不允许这样做。 – w5m

1
SELECT DATE_ADD(CURDATE(), INTERVAL 2 DAY) 
1
DATE_ADD(FROM_DATE_HERE, INTERVAL INTERVAL_TIME_HERE DAY) 

会给日期。

DATE_ADD(NOW(), INTERVAL -1 DAY) for deducting 1 DAY from current Day 
DATE_ADD(NOW(), INTERVAL 2 DAY) for adding 2 Days 

您可以像使用

UPDATE classes WHERE date=(DATE_ADD(date, INTERVAL 1 DAY)) WHERE id=161 
0
SET date = DATE_ADD(fieldname, INTERVAL 2 DAY) 
4

此查询代表好当前的日期和它的下一个3日期间获取的值

SELECT * FROM tableName 
WHERE columName BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 3 DAY) 

这将最终增加额外的3到当前日期的缓冲天数。

+0

这就是我想要的。谢谢 –