2011-10-19 180 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

這就是我想要的。謝謝 –