私たちはカヤッカーがストリームをパドルするのに十分な水があるかどうかを知り、時間を浪費しないように独自のストリームゲージ(このUSGSゲージとよく似ています)を展開しています。そこに追い出されるガス。私たちは、東部および中央部の時間帯にまたがる南東部のホワイトウォーター地域にこれらのいくつかを設置したいと考えています。PostgreSQLでの夏時間のタイムゾーン
私はレコードが挿入されている時間を、そのレコードのcurrent_timeのデフォルト値を使用して保存しています。後でMM/DD/YYYY HH12:MI AM TZ
形式を使用してデータを表示すると、03/12/2012 01:00 AM CDT
のように表示されます。私は出力が日中の節約時間の変化を知るようにしたいので、前の文の最後の部分はCSTとCDTの間で変化します。この変更は2012年3月11日に発生しました。このDSTラインの両側に日付が含まれています。私は開発のために私のWindows 7のラップトップを使用しています。私たちは後でUnixボックスに展開します。 Postgresは私のWindowsコンピュータが米国東部時間帯に設定されていることを明らかにしています。私はこれをタイムゾーンなしのタイムスタンプフィールドとタイムゾーン付きタイムスタンプフィールドで試していますが、動作させることはできません。
私は選択した時点で「タイムゾーン」を使用しようとしましたが、タイムゾーンを表示するまではすべて動作しています。実際の時間はタイムスタンプの一部で、CDTの時刻を尋ねると1時間だけ正しく減算されます。しかしEDTが出力に表示されます。
SELECT reading_time as raw,
reading_time at time zone 'CDT',
to_char(reading_time at time zone 'CDT',
'MM/DD/YYYY HH12:MI AM TZ') as formatted_time
FROM readings2;
"2012-04-29 17:59:35.65";"2012-04-29 18:59:35.65-04";"04/29/2012 06:59 PM EDT"
"2012-04-29 17:59:40.19";"2012-04-29 18:59:40.19-04";"04/29/2012 06:59 PM EDT"
"2012-03-10 00:00:00";"2012-03-10 00:00:00-05";"03/10/2012 12:00 AM EST"
"2012-03-11 00:00:00";"2012-03-11 00:00:00-05";"03/11/2012 12:00 AM EST"
"2012-03-12 00:00:00";"2012-03-12 01:00:00-04";"03/12/2012 01:00 AM EDT"
私たちのゲージのそれぞれが位置するタイムゾーンをキャラクタ可変フィールドに別のテーブルとして保存しています。私は時間の出力の終わりにこの値を追加することを検討しましたが、私の介入なしにそれをCSTからCDTに変更したいと思います。
ありがとうございました。
ここで、 'psql'の' \ d readings2'の出力を投稿できると便利です。 – vyegorov