Дата обновления + один год в MySQL - PullRequest
87 голосов
/ 05 октября 2010

Когда я хочу установить числовое значение +1 в таблице MySQL, я использую, например ::10000

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

Как мне установить дату + один год?

Спасибо

Ответы [ 3 ]

153 голосов
/ 05 октября 2010

Вы можете использовать DATE_ADD : (или ADDDATE с INTERVAL)

UPDATE table SET date = DATE_ADD(date, INTERVAL 1 YEAR) 
16 голосов
/ 11 июня 2013

Этот пост помог мне сегодня, но я должен был экспериментировать, чтобы сделать то, что мне было нужно. Вот что я нашел.

Если вы хотите добавить более сложные периоды времени, например, 1 год и 15 дней, вы можете использовать

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

Я обнаружил, что использование DATE_ADD не позволяет добавлять более одного интервала. И нет никакого ключевого слова интервала YEAR_DAYS, хотя есть другие, которые комбинируют периоды времени. Если вы добавляете время, используйте now() вместо curdate().

3 голосов
/ 18 сентября 2016

Для нескольких типов интервалов используйте вложенную конструкцию, как в:

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

Для обновления указанной даты в столбце date до 1 года + 1 день

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...