我有一个生日列表,年份是唯一不正确的部分.我有这些人的ID#列表.有没有办法只改变所有这些人的一年?我在考虑制作一个查询结果表,然后使用UPDATE SET查询,但我不知道如何只更改年份.

编辑中包含的示例.每年需要减少2.
Aar*_*and 36
如果所有行都需要减少两年,那么:
UPDATE dbo.TableToUpdate
SET [Date Column] = DATEADD(YEAR, -2, [Date Column]);
Run Code Online (Sandbox Code Playgroud)
Mic*_*uen 25
这是我能想到的最短,将年份改为2050年:
select
dateadd(year, (2050 - year(d)), d)
from x
Run Code Online (Sandbox Code Playgroud)
样本数据:
create table x(d date);
insert into x values
('2001-11-19'),
('2020-07-05'),
('2012-05-01');
Run Code Online (Sandbox Code Playgroud)
输出:
COLUMN_0
2050-11-19
2050-07-05
2050-05-01
Run Code Online (Sandbox Code Playgroud)
现场测试:http://www.sqlfiddle.com/#!3/9a8b4/2
万一其他人需要它用于 MySQL,这里是语法:
UPDATE dbo.TableToUpdate
SET [Date Column] = DATE_ADD([Date Column], INTERVAL -2 year);
Run Code Online (Sandbox Code Playgroud)