【问题标题】:How to add a time to an existing timestamp in Postgresql/sql?如何为 Postgresql/sql 中的现有时间戳添加时间?
【发布时间】:2021-12-14 12:32:56
【问题描述】:

在我的表中,我将列从日期更改为时间戳。在所有现有的行中,Postgres 自动为日期添加时间,例如:

2020-04-04 --> 2020-04-04 00:00:00

但我希望所有现有行都设置为 09:00(所以:2020-04-04 09:00:00)。 有人知道怎么做吗?

这是我的代码:

    ALTER TABLE members ALTER COLUMN joined SET DATA TYPE timestamp;
    ALTER TABLE members ALTER COLUMN joined SET DEFAULT current_timestamp;
--for all existing columns, change timestamp to [entered-date_09:00:00]

【问题讨论】:

标签: sql postgresql date timestamp


【解决方案1】:

ALTER COLUMN .. SET DATA TYPE .. USING 就是你要找的东西:

ALTER TABLE members 
  ALTER COLUMN joined SET DATA TYPE timestamp USING joined + '09:00:00'::time;

或者使用UPDATE,以防您已经有时间戳列

UPDATE members
SET joined = joined + '09:00:00'::time

演示:db<>fiddle

【讨论】:

    【解决方案2】:

    加 9 小时:

    update members
    set joined = joined + interval '9' hour
    

    【讨论】:

      猜你喜欢
      • 2021-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-16
      • 2019-10-27
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多