database - PostgreSql:获取格式奇怪的 "timestamp with time zone"

标签 database postgresql datetime formatting timestamp

我正在插入字段类型为“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/

相关文章:

c# - 在 telerik Grid 中显示日期而不是 DateTime

postgresql - 在 PostgreSQL 中使用加密密码创建用户

macos - 您如何绕过 Docker for Mac 中 Docker.qcow2 的大小限制?

python - SQLAlchemy 的 Multi-Tenancy

datetime - 设置日期时间值的格式 日值

android - 在 greendao 中使用我的 OpenHelper 升级数据库

database - 规范化和主键

python - 将存储在数据库中的 BLOB 转换为 HTML 网站上的图像

ruby-on-rails - rake 数据库 :reset fails halfway through dropping databases

php/Codeigniter--如何通过排除时间来比较日期