我有一列带有日期类型的列,我只想更新日期中的年份,而将日期和月份保持不变。无论当前值是多少,我都希望将年份设置为特定值。当前堆栈溢出的答案涉及从日期中添加或减去年份,这似乎并不是我所需要的。
答案 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上找到的内容。到底什么对您不起作用?该语句采用日期,并加上一年,然后将其保存回数据库。