我正在将字段类型“带有时区的时间戳”字符串“1858-11-17 01:09:05+0000”插入到表中,并返回 stage 格式化值“05:11:29+04:02:24”。
这是会话
test=> create table ddtbl (val timestamp with time zone);
CREATE TABLE
test=> insert into ddtbl (val) values ('1858-11-17 01:09:05+0000');
INSERT 0 1
test=> select * from ddtbl;
val
------------------------------
1858-11-17 05:11:29+04:02:24
为什么会发生这种情况?这里的“+04:02:24”是什么?
UPD:PostgreSQL 版本
% psql --version
psql (PostgreSQL) 9.2.4
UPD2:本地时区
% date +%Z
YEKT
% date +%z
+0600
这是时区的影响。在 20 世纪初之前,许多国家(如德国或俄罗斯)拥有完全不同的制度,例如“平均太阳时”,它无法清楚地转换为 UTC。
因此,时区 0 中的时间(当时为 GMT,因为还没有 UTC)在表示为叶卡捷琳堡(俄罗斯)当地时间时会有奇怪的时间偏移。
+04:02:24
是与 UTC 相比的实际偏移量。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)