Data de atualização + um ano no mysql

97

Quando eu quero definir o valor numérico +1 na tabela mysql, eu uso, por exemplo:

UPDATE table SET number=number+1 WHEN ...

Como posso definir a data + um ano?

obrigado

Bajlo
fonte

Respostas:

174

Você pode usar DATE_ADD : (ou ADDDATE com INTERVAL)

UPDATE table SET date = DATE_ADD(date, INTERVAL 1 YEAR) 
Julien Hoarau
fonte
17

Esse post me ajudou hoje, mas tive que experimentar para fazer o que precisava. Aqui está o que encontrei.

Se você quiser adicionar períodos de tempo mais complexos, por exemplo, 1 ano e 15 dias, você pode usar

UPDATE tablename SET datefieldname = curdate() + INTERVAL 15 DAY + INTERVAL 1 YEAR;

Descobri que o uso DATE_ADDnão permite adicionar mais de um intervalo. E não há palavra-chave de intervalo YEAR_DAYS, embora existam outras que combinam períodos de tempo. Se você estiver adicionando tempos, use em now()vez de curdate().

Fred McIntyre
fonte
4

Para vários tipos de intervalo, use uma construção aninhada como em:

 UPDATE table SET date = DATE_ADD(DATE_ADD(date, INTERVAL 1 YEAR), INTERVAL 1 DAY)

Para atualizar uma determinada data na coluna datepara 1 ano + 1 dia

Raffael Meier
fonte