如何将时间添加到 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
在我的 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