我有一个生日列表,年份是唯一不正确的部分。我有这些人的 ID #s 列表。有没有办法只改变所有这些人的年份?我正在考虑制作一个查询结果表然后使用UPDATE
SET
查询,但我不知道如何只更改年份。
样本包含在编辑中。每年需要减少2。
我有一个生日列表,年份是唯一不正确的部分。我有这些人的 ID #s 列表。有没有办法只改变所有这些人的年份?我正在考虑制作一个查询结果表然后使用UPDATE
SET
查询,但我不知道如何只更改年份。
样本包含在编辑中。每年需要减少2。
如果所有行都需要减少两年,那么:
UPDATE dbo.TableToUpdate
SET [Date Column] = DATEADD(YEAR, -2, [Date Column]);
如果所有行都需要设置为特定年份(例如 2019 年),则列是date
:
UPDATE dbo.TableToUpdate
SET [Date Column] = DATEFROMPARTS(2019, MONTH([Date Column]), DAY([Date Column]);
如果所有行都需要设置为特定年份(例如 2019 年)并且列不是date
,则可以使用DATETIMEFROMPARTS
or SMALLDATETIMEFROMPARTS
,但此时以下内容会变短:
UPDATE dbo.TableToUpdate
SET [Date Column] = DATEADD
(
YEAR,
-DATEDIFF(YEAR, '20190101', [Date Column]),
[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
万一其他人需要它用于 MySQL,语法如下:
UPDATE dbo.TableToUpdate
SET [Date Column] = DATE_ADD([Date Column], INTERVAL -2 year);