【问题标题】:Update only year in date field with postgres使用 postgres 仅更新日期字段中的年份
【发布时间】:2019-05-23 21:42:37
【问题描述】:

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

【问题讨论】:

    标签: sql postgresql


    【解决方案1】:

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

    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。

    【讨论】:

      【解决方案2】:

      你可以这样做:

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

      编辑:

      但这也是你在 stackoverflow 上找到的。到底什么不适合你?该语句获取日期,在其上添加一年并将其保存回数据库。

      【讨论】:

      • 这对我不起作用,因为当我实际上想将每个日期设置为特定年份时,它要求我知道在编写 sql 时要添加/减去的时间量。跨度>
      • 这对我来说是完美的,因为我想增加一个设定的数字。感谢您发布此提示。 ?
      猜你喜欢
      • 1970-01-01
      • 2016-09-11
      • 2019-12-27
      • 2020-04-23
      • 1970-01-01
      • 1970-01-01
      • 2011-07-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多