Data aktualizacji + rok w mysql

97

Kiedy chcę ustawić wartość liczbową +1 w tabeli mysql, używam np:

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

Jak mogę ustawić datę + rok?

Dzięki

Bajlo
źródło

Odpowiedzi:

174

Możesz użyć DATE_ADD : (lub ADDDATE z INTERVAL)

UPDATE table SET date = DATE_ADD(date, INTERVAL 1 YEAR) 
Julien Hoarau
źródło
17

Ten post pomógł mi dzisiaj, ale musiałem poeksperymentować, aby zrobić to, czego potrzebowałem. Oto co znalazłem.

Jeśli chcesz dodać bardziej złożone okresy, na przykład 1 rok i 15 dni, możesz użyć

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

Okazało się, że użycie DATE_ADDnie pozwala na dodanie więcej niż jednego interwału. I nie ma słowa kluczowego interwał YEAR_DAYS, chociaż są inne, które łączą okresy. Jeśli dodajesz czasy, użyj now()zamiast curdate().

Fred McIntyre
źródło
4

Dla wielu typów przedziałów użyj konstrukcji zagnieżdżonej, jak w:

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

Za aktualizację podanej daty w kolumnie datedo 1 roku + 1 dzień

Raffael Meier
źródło