如何仅更改date数据类型的年份

时间:2012-04-30 18:01:02

标签: sql sql-server

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

enter image description here

编辑中包含的示例。每年需要减少2个。

3 个答案:

答案 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

实时测试:http://www.sqlfiddle.com/#!3/9a8b4/2

答案 2 :(得分:4)

如果其他人需要它用于MySQL,这里是语法:

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