Как изменить только год даты

У меня есть список дней рождения, и год является единственной частью, которая неверна. У меня есть список ID # для этих людей. Есть ли способ изменить только год для всех этих людей? Я думал что-то вроде создания таблицы результатов запроса, а затем с помощью запроса UPDATE SET, но я не знаю, как изменить только год.

enter image description here

Пример, включенный в редактирование. Каждый год нужно уменьшить на 2.

Ответы

Ответ 1

Если все строки должны быть уменьшены на два года, то:

UPDATE dbo.TableToUpdate
  SET [Date Column] = DATEADD(YEAR, -2, [Date Column]);

Ответ 2

Здесь самое короткое, о котором я могу думать, изменить год до 2050 года:

select 
    dateadd(year, (2050 - year(d)), d)            
from x

Пример данных:

create table x(d date);

insert into x values
('2001-11-19'),
('2020-07-05'),
('2012-05-01');

Вывод:

COLUMN_0
2050-11-19
2050-07-05
2050-05-01

Live test: http://www.sqlfiddle.com/#!3/9a8b4/2

Ответ 3

Если кому-то это понадобится для MySQL, вот синтаксис:

UPDATE dbo.TableToUpdate SET [Date Column] = DATE_ADD ([Date Column], INTERVAL -2 YEAR);