实施例1:基础测试
select '08/31/2011 12:00 pm EST'::timestamptz at time zone 'EST'; timezone --------------------- 2011-08-31 12:00:00
示例2:偏移量为5
select '08/31/2011 12:00 pm EST' at time zone '+5'; timezone --------------------- 2011-08-31 12:00:00
例3:偏移量为-5
select '08/31/2011 12:00 pm EST' at time zone '-5'; timezone --------------------- 2011-08-31 22:00:00
显然,一切都是倒退的. EST再次…… supposed to be UTC-5.现在,我确实搜索了文档,它确实解释了事物是“POSIX”,which is backwards.(正偏移是GMT以西,而负偏移是GMT以东).
但是,我该如何解决这个问题呢?在应用程序层,我总是可以将符号反转为 – 符号,但这对我来说似乎有些混乱.因此,我的终极问题.
在数据库层(Postgres),有没有办法使用“At Time Zone”语法,以便GMT-5对应EST?或者我只需要在应用层反转所有内容?
解决方法 使用 documentation中编写的interval数据类型来获得正确的行为:In these Expressions,the desired time zone
zone
can be specifIEd
either as a text string (e.g.,‘PST’) or as an interval (e.g.,
INTERVAL ‘-08:00’).
基础测试:
SELECT '08/31/2011 12:00 pm EST'::timestamptz AT TIME ZONE 'EST'; timezone --------------------- 2011-08-31 12:00:00(1 row)
时区信息:
SELECT * FROM pg_timezone_abbrevs WHERE abbrev liKE 'EST'; abbrev | utc_offset | is_dst --------+------------+-------- EST | -05:00:00 | f(1 row)
适当的偏移-5:
SELECT '08/31/2011 12:00 pm EST'::timestamptz AT TIME ZONE '-05:00'::interval; timezone --------------------- 2011-08-31 12:00:00(1 row)
适当的偏移量5:
SELECT '08/31/2011 12:00 pm EST'::timestamptz AT TIME ZONE '+05:00'::interval; timezone --------------------- 2011-08-31 22:00:00(1 row)总结
以上是内存溢出为你收集整理的在Postgresql中,如何使用“At Time Zone”取消时区偏移全部内容,希望文章能够帮你解决在Postgresql中,如何使用“At Time Zone”取消时区偏移所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)