如何将时间添加到 Postgresql/sql 中的现有时间戳?

How to add a time to an existing timestamp in Postgresql/sql?

在我的 table 中,我将列从日期更改为时间戳。在所有现有行中,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]

增加 9 小时:

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

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