我正在插入字段类型为“timestamp with time zone”字符串“1858-11-17 01:09:05+0000”的表,并返回 strage 格式的值“05:11:29+04:02: 24”。
这是 session
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”是什么?
更新:PostgreSQL 版本
% psql --version
psql (PostgreSQL) 9.2.4
UPD2:本地时区
% date +%Z
YEKT
% date +%z
+0600
最佳答案
这是时区的影响。在 20 世纪初之前,许多国家(如德国或俄罗斯)拥有完全不同的制度,例如“平太阳时”,无法清晰地转换为 UTC。
因此,当表示为叶卡捷琳堡(俄罗斯)本地时间时,时区 0 中的时间(当时是格林威治标准时间,因为还没有 UTC)会有一个奇怪的时间偏移。
+04:02:24
是与 UTC 相比的实际偏移量。
关于database - PostgreSql:获取格式奇怪的 "timestamp with time zone",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16572455/