2011-10-19 24 views
31

Tengo una tabla en MySQL. ¿Cuál sería la declaración de SQL parece agregar, digamos, 2 días al valor de fecha actual en la tabla?MySQL agregar días a una fecha

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

esto agrega un segundo al valor, no quiero actualizar la hora, ¿quiero agregar dos días?

+0

posible duplicado de [Agregar 30 días para la fecha en db] (http://stackoverflow.com/questions/1609377/add-30-days-for-date-in-db) – JJJ

Respuesta

69

Asumiendo que su campo es un tipo date (o similar):

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

Con el ejemplo que nos ha facilitado que podría tener este aspecto:

UPDATE classes 
SET `date` = DATE_ADD(`date` , INTERVAL 2 DAY) 
WHERE `id` = 161; 
+0

su fecha y hora ... ¿Esto ¿seguirá funcionando? – Beginner

+0

Sí, funcionará también con un tipo de fecha y hora. – Bjoern

1

para su necesidad:

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

Gracias por incluir este medio alternativo de agregar días a un campo de fecha. He estado buscando una manera de incrementar una fecha usando un argumento de procedimiento almacenado que contiene la cantidad de días. Lamentablemente, la sintaxis DATE_ADD no permite esto. – w5m

2
update tablename set coldate=DATE_ADD(coldate, INTERVAL 2 DAY) 
1
SELECT DATE_ADD(CURDATE(), INTERVAL 2 DAY) 
1
DATE_ADD(FROM_DATE_HERE, INTERVAL INTERVAL_TIME_HERE DAY) 

dará la fecha Después de ajustar el intervalo de

por ejemplo.

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

Usted puede utilizar como

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

Esta consulta está bueno para ir a buscar los valores entre la fecha actual y sus próximos 3 fechas

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

Esto finalmente añadir el suplemento 3 días de memoria intermedia a la fecha actual.

+0

Eso es lo que quiero. Gracias –

Cuestiones relacionadas