图片我有一个包含以下两列的表:
timestampwithouttimezone
(类型TIMESTAMP WITHOUT TIME ZONE
)utcoffset
(类型INTEGER
)我想将这两个列转换为TIMESTAMP WITH TIME ZONE类型的单个列。可以使用ALTER TABLE ALTER COLUMN [column] SET DATE TYPE TIMESTAMP WITH TIME ZONE
查询和附加的USING子句来实现吗?
或者我是否需要一个单独的UPDATE查询来获取偏移量并设置时间戳的时区?如果是这样的话,该查询会是什么?我找不到任何显示如何使用整数更新时区的示例。
答案 0 :(得分:1)
你可以这样做,假设偏移是以小时为单位:
ALTER TABLE mytab
ALTER timestampwithouttimezone
TYPE timestamp with time zone
USING CAST (timestampwithouttimezone::text || ' '
|| to_char(utcoffset, 'S00FM')
AS timestamp with time zone),
DROP utcoffset;