私は 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 に対応するように「At Time Zone」構文を使用する方法はありますか? それとも、アプリケーション層ですべてを反転する必要がありますか?