2017-07-25 12 views
0

タイムゾーンのあるタイムスタンプの列を持つpostgresテーブルがあります。格納されるデータはUTCです。この列をUTCから別のタイムゾーンに変換したいと思います。ポストグルで夏時間を考慮に入れた正しいタイムゾーンを選択するにはどうすればよいですか?私はpg_timezone_namesビューを見て、postgresによって実際にサポートされている略語を認識しています。私の懸念は、カリフォルニア州のようなある州では、年間のPSTとPDTを使用していることです。postgres夏時間のタイムゾーン

select current_time at time zone 'PDT'、またはselect current_time at time zone 'PST'のようなコードでは、今年はカリフォルニアでの正確な現在時刻がわかりません。私はこの権利を理解していますか?

私はselect current_time at time zone 'America/New_York'またはAmerica/Los_Angelesのようにいつかすることができることを知っています。私は明示的に場所を指定しているので、このような何かが光の節約の時間を考慮に入れることを期待しています。これは、ポストグラムの夏時間の問題を処理する唯一の正しい方法ですか?

理想的には、場所を明示的に指定することは望ましくなく、postgresのタイムゾーンの省略形を使用することをお勧めします。それは全くできますか?

答えて

0

私はあなたと同じ質問があります。私が提供できる最良のものは、私が見つけたドキュメントページを指すことです。 pg_timezone_names documentation

ビューpg_timezone_namesは、それらに関連する略語、 UTCオフセット、夏時間状況などとともに、 は、SETのTIMEZONEで認識されているタイムゾーン名のリストを提供します。 pg_timezone_abbrevsに表示されている略語 とは異なり、これらの名前の多くは、 の夏時間の移行日ルールのセットを意味します。したがって、関連する の情報は、ローカルのDST境界を超えて変更されます。表示される の情報は、現在の値 CURRENT_TIMESTAMPに基づいて計算されます。

私はこれが理にかなっており、私たちが望むことができる最高のものだと思います。残念なことに、タイムゾーンの省略形はDSTルールを網羅していません。特定の地理的領域が暗示されることはないため、UTCオフセットのシンボルに過ぎません。

関連する問題