Postgres のドキュメントに従ってat time zone
、ISO-8601 スタイルのタイム オフセットまたは標準タイム ゾーンの省略形を使用できます。
http://www.postgresql.org/docs/9.1/static/datatype-datetime.html#DATATYPE-TIMEZONE-TABLE
IST は Postgres の ISRAEL STANDARD TIME を表し、オフセットは +02:00 です。例 グリニッジ (GMT) で水曜日の午前 12:00 の場合、イスラエル (IST) では水曜日の午前 02:00 です。
したがって、次の 2 つのステートメントは同等である必要があります。
select cast('2012-07-02 00:00:00' as timestamp without time zone) at time zone 'IST';
select cast('2012-07-02 00:00:00' as timestamp without time zone) at time zone '+02:00';
しかし、そうではありません。両方のステートメントで異なる結果が得られます。
に変更+02:00
する-02:00
と問題が解決します。この動作は、ドキュメントと矛盾しています。何か不足していますか?ドキュメント (および一般的な規則) から私が理解していることは、GMT の東のタイム ゾーンには正のオフセットがあり、右側のタイム ゾーンには負のオフセットがあるということです。それで、ここで何が起こっているのですか?