(这是对以下内容的后续操作:PostgreSQL时间戳中的时区存储)
我使用的是PostgreSQL 9.x,+9
例如,数据库服务器具有默认时区,它具有包含timezone
类型列的表。
与db在同一服务器上有一个Java程序,它从数据库查询数据。数据库所在的服务器和Java服务器程序的客户端(浏览器)都在timezone中-8
。
我的问题是:
您总能得到same data in browser client as the db original value
。显示相同时间点(在不同时区)的方法有很多种。两个示例(timestamptz
值的文本表示形式):
'2012-03-05 20:00:00+03'
'2012-03-05 18:00:00+01'
相同的价值。
就Postgres而言,服务器的时区设置与此完全无关。唯一相关的是会话的设置。唯一改变的是值的显示。时间总是相同的。
因此,只需在会话中设置时区即可获得相应的文本表示形式:
另一个选择是AT TIME ZONE
构造。要获得本地timestamp
身份: timestamp without time zone
SELECT my_timestamptz_column AT TIME ZONE '-8';
在处理时table that contains a column of timezone type
,这可能是更好的方法,因为时区可以随行而变化。
同样,所有这些都在参考答案中:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句