誕生日のリストがありますが、間違っているのは年だけです。これらの個人の ID 番号のリストがあります。これらすべての人々の年だけを変更する方法はありますか? クエリ結果のテーブルを作ってからクエリを使うようなことを考えていたのUPDATE SETですが、年だけを変更する方法がわかりません。

編集に含まれるサンプル。毎年 2 ずつ減らす必要があります。
誕生日のリストがありますが、間違っているのは年だけです。これらの個人の ID 番号のリストがあります。これらすべての人々の年だけを変更する方法はありますか? クエリ結果のテーブルを作ってからクエリを使うようなことを考えていたのUPDATE SETですが、年だけを変更する方法がわかりません。

編集に含まれるサンプル。毎年 2 ずつ減らす必要があります。
すべての行を 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を使用できますが、その時点で以下は短くなります。DATETIMEFROMPARTSSMALLDATETIMEFROMPARTS
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