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

时间:2019-05-23 13:29:34

标签: sql postgresql

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

2 个答案:

答案 0 :(得分:3)

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

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年。

答案 1 :(得分:1)

您可以这样做:

UPDATE yourTable SET date_field = date_field + interval '1 year';

编辑:

但这也是在stackoverflow上找到的内容。到底什么对您不起作用?该语句采用日期,并加上一年,然后将其保存回数据库。