我有生日列表,而年份是唯一不正确的部分。我有这些人的ID#列表。有没有办法只改变所有这些人的一年?我正在考虑制作查询结果表,然后使用UPDATE
SET
查询,但我不知道如何只更改年份。
编辑中包含的示例。每年需要减少2个。
答案 0 :(得分:35)
如果所有行都需要减少两年,那么:
UPDATE dbo.TableToUpdate
SET [Date Column] = DATEADD(YEAR, -2, [Date Column]);
答案 1 :(得分:23)
这是我能想到的最短时间,将年份改为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
答案 2 :(得分:4)
如果其他人需要它用于MySQL,这里是语法:
UPDATE dbo.TableToUpdate
SET [Date Column] = DATE_ADD([Date Column], INTERVAL -2 year);