UPDATE YourTable
SET YourDateColumn = SUBDATE(YourDateColumn, INTERVAL 9 YEAR);
Ответ 2
ИСПОЛЬЗОВАТЬ ADDDATE(old_date, INTERVAL -9 YEAR)
Ответ 3
UPDATE YourTable
SET YourDateColumn = ADDDATE(YourDateColumn, INTERVAL 1 YEAR)
WHERE YourDateColumn >= '2010-01-01'
AND YourDateColumn <= '2010-12-31';
Если ваша таблица не имеет индекса в поле даты, вы можете уйти от этого:
UPDATE YourTable
SET YourDateColumn = ADDDATE(YourDateColumn, INTERVAL 1 YEAR)
WHERE YEAR(YourDateColumn) = 2010;
Чтобы исправить вашу проблему с датой 2020 до 2021, запустите это:
UPDATE YourTable
SET YourDateColumn = ADDDATE(YourDateColumn, INTERVAL -1 YEAR)
WHERE YEAR(YourDateColumn) = 2021;
Кстати, я скопировал оригинальный код Джо Стефанелли, +1 для него!!!
Ответ 4
Я хотел бы добавить (для других посетителей вопроса), что вы можете "обновить" положительно быстрее, чем с помощью инструкции ADDDATE с помощью функции SUBDATE, я думаю, что это значительно быстрее, а до ADDDATE взял это aprox. 1 час, чтобы повлиять на 2,3 трлн строк SUBDATE, сделал это в половине случаев.
UPDATE Table SET DateTimeField = SUBDATE(DateTimeField, INTERVAL -x YEAR);
Где x - отрицательное число, которое вы хотите добавить в качестве значения нового года.
Честно говоря, я игнорирую, почему это происходит, но оно работает.