首页 > 解决方案 > 使用 postgres 仅更新日期字段中的年份

问题描述

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

标签: sqlpostgresql

解决方案


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

UPDATE my_table SET date_column = date_column + 
    MAKE_INTERVAL(YEARS := ***year*** - EXTRACT(YEAR FROM date_column)::INTEGER)

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

UPDATE my_table SET date_column = date_column + 
    MAKE_INTERVAL(YEARS := 2001 - EXTRACT(YEAR FROM date_column)::INTEGER)

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


推荐阅读