仅使用 postgres 更新日期字段中的年份

Qwe*_*tie 6 sql postgresql

我有一个日期类型的列,我只想更新日期中的年份,同时保留日期和月份。无论当前值是多少,我都想将年份设置为特定值。当前堆栈溢出的答案涉及从日期中添加或减去年份,这似乎不是我需要的。

cle*_*ens 7

您可以像这样设置特定的年份:

UPDATE my_table SET date_column = date_column + 
    MAKE_INTERVAL(YEARS := ***year*** - EXTRACT(YEAR FROM date_column)::INTEGER)
Run Code Online (Sandbox Code Playgroud)

其中***year***是特定年份的整数。例如

UPDATE my_table SET date_column = date_column + 
    MAKE_INTERVAL(YEARS := 2001 - EXTRACT(YEAR FROM date_column)::INTEGER)
Run Code Online (Sandbox Code Playgroud)

将所有日期的年份设置为 2001。