【发布时间】:2013-05-15 18:27:58
【问题描述】:
我正在将字段类型“带时区的时间戳”字符串“1858-11-17 01:09:05+0000”插入到表中,并取回格式化值“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
【问题讨论】:
-
不知道,但它发生在 1914-01-01 UTC 之前的任何日期
-
奇怪,我在文档中找不到这个
-
我在 9.1.9 上没有看到这个。您的区域设置是什么,可能相关?
-
我在 Linux 9.2.4 BRT 时区。 SQL Fiddle 9.2.4 不会发生这种情况,可能是因为服务器设置为 UTC
-
如果我这样做
set timezone = 'utc',它就会恢复正常。
标签: database postgresql datetime formatting timestamp