我有一列时区名称。我想获得另一列,其中包含与UTC时间相比的时差。但是我不知道在创建表时应该为该偏移量列使用哪种数据类型。我用过:
CREATE TABLE zone_offset(
zone_name varchar(50),
zone_utc_diff timestamp
);
INSERT INTO zone_offset
SELECT zone_name, getdate() - getdate() at time zone zone_name AS zone_utc_diff
FROM zones
,我得到了那个错误。如何使它与任何数据类型一起使用?
非常感谢您!
答案 0 :(得分:0)
您可能应该将zone_utc_diff存储为一个间隔而不是一个时间戳。时间戳代表日期/时间,而间隔代表日期之间的差异。
create table zones (
zone_name varchar(50)
);
insert into zones values('cet');
create table zone_offset(
zone_name varchar(50),
zone_utc_diff interval
);
insert into zone_offset
select zone_name, current_timestamp - (current_timestamp at time zone zone_name) as zone_utc_diff
from zones
select * from zone_offset;
| zone_name | zone_utc_diff |
| --------- | --------------- |
| cet | {"hours":-1} |