Ответ 1
Если все строки должны быть уменьшены на два года, то:
UPDATE dbo.TableToUpdate
SET [Date Column] = DATEADD(YEAR, -2, [Date Column]);
У меня есть список дней рождения, и год является единственной частью, которая неверна. У меня есть список ID # для этих людей. Есть ли способ изменить только год для всех этих людей? Я думал что-то вроде создания таблицы результатов запроса, а затем с помощью запроса UPDATE
SET
, но я не знаю, как изменить только год.
Пример, включенный в редактирование. Каждый год нужно уменьшить на 2.
Если все строки должны быть уменьшены на два года, то:
UPDATE dbo.TableToUpdate
SET [Date Column] = DATEADD(YEAR, -2, [Date Column]);
Здесь самое короткое, о котором я могу думать, изменить год до 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
Если кому-то это понадобится для MySQL, вот синтаксис:
UPDATE dbo.TableToUpdate SET [Date Column] = DATE_ADD ([Date Column], INTERVAL -2 YEAR);