2016-08-08 9 views
0

タイムゾーン付きのカラムタイプのタイムスタンプを持つpgデータベースがあります。私は、次の日付を挿入:PostgreSQLの日付タイムゾーンの問題

2016年7月31日20時00分〇​​〇秒:

2016年8月1日00:00:00 GMT

ただし、データベースでは、として表示されます-04

何が起こっているのでしょうか?

ありがとうございます!

+0

入力がそのディスプレイに表示されますか?カップル時間の違いはタイムゾーンの問題(したがって '-04')ですが、08-16から07-31に行くのは少しです。ところで、完全にサービス可能な日付タイプがある場合、なぜ日付のタイムスタンプ列を使用するのですか? –

+0

こんにちは - 申し訳ありませんが、間違った入力を貼り付けて、私の質問を更新しました。 –

+2

ちょうど4時間のタイムゾーン調整、同じタイムスタンプですが、-04タイムゾーンで表示されます。 –

答えて

1

名前にかかわらず、TIMESTAMP WITH TIME ZONEは実際にはタイムゾーンを格納しません。セッションのタイムゾーンを使用してUTCに正規化し、UTCを保存します。取得時には、UTCからセッションのタイムゾーンに変換されます。

SET TIME ZONEコマンドを使用すると、セッションのタイムゾーンを変更できます。好ましくは、the standard IANA time zone identifiersを使用する必要があります。例えば:

SET TIME ZONE 'Europe/Paris' 

又は

SET TIME ZONE 'UTC' 

は、あるいはまったく変換を行わないれ、代わりTIMESTAMP [WITHOUT TIME ZONE]タイプを使用します。