我正试图围绕 Postgresql 时区展开思考,但我似乎无法弄清楚这一点。EST 在美国是“东部标准时间”,通常是UTC-5。
示例 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 再次......应该是 UTC-5。现在,我确实搜索了文档,它确实解释了事情是“POSIX”,它是向后的。(正偏移位于 GMT 以西,而负偏移位于 GMT 以东)。
但是,我该如何解决这个问题?在应用程序层,我总是可以将 + 号反转为 - 号,但这对我来说似乎有点混乱 IMO。因此,我的终极问题。
在数据库层(Postgres),有没有办法使用“在时区”语法使 GMT-5 对应于 EST?还是我只需要在应用层反转所有内容?