我正在使用 postgresql 8.3,我想知道特定时间戳(表中的列)的时区。
在文档中我找到了关键字“时区” http://www.postgresql.org/docs/8.3/static/functions-datetime.html
但我不明白如何将它应用到表的列中。是否可以 ?
我假设你有一个名为ct
其中有类型TIMESTAMPTZ
在表中t
。然后你可以使用:
SELECT EXTRACT(TIMEZONE FROM ct) FROM t;
获取时区的偏移量(以秒为单位)。它给你3600
from UTC
/GMT
这意味着要么GMT+1
, CET
管他呢。返回的值取决于您的TIMEZONE
环境。
示例(我住在德国,实际时区是GMT+1
/CET
):
test=# select '2008-01-01 12:00:00 GMT+5'::timestamptz;
timestamptz
------------------------
2008-01-01 18:00:00+01
test=# set timezone to 'gmt';
SET
test=# select '2008-01-01 12:00:00 GMT+5'::timestamptz;
timestamptz
------------------------
2008-01-01 17:00:00+00
正如您所看到的,它总是输出配置时区中的任何内容。所以你会得到的偏移量EXTRACT(TIMEZONE FROM ...)
取决于你的TIMEZONE
环境。给出的时区INSERT
迷失了,因为不值得被拯救。重要的是一切都是正确的,而不应该取决于TIMEZONE
环境。 PostgreSQL 在这方面做得很好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)