2017-03-29 3 views
0
select current_time at time zone 'GMT-2' 

戻りどのようにPostgresの

"11:54:40.22045+02" 

を正しい現地時間を返すために、しかし、Windowsの正しい現地時間が1時間異なります

12:54 

正しいローカル時刻を取得する方法は?使用

"++ビルドのVisual CでコンパイルのPostgreSQL 9.6.0、1800年、32ビットの" 10 同じ問題がealierのPostgresにし、それ以前にも発生し、Windowsの標準postgresql.confファイルで

窓。

Windowsのサーバー時間は正しいです。

1週間前に夏時間が変更されました。 postgresがそれを認識しなかった可能性があります。

+0

https://www.postgresql.org/docs/9.1/static/functions-datetime.html#FUNCTIONS-DATETIME-CURRENT –

+0

と「タイムゾーン」なしで表示される時間はどれですか? –

+1

数日前にDSTの変更がありました。おそらくあなたはもう "GMT-2"ではないでしょう、Dorothy。 – pozs

答えて

3

time with time zoneを使用しないでください。無駄なデータ型です。

タイプtime with time zoneはSQL標準で定義されていますが、 定義が疑わしい有用性につながる性質を示す:

the documentationを参照してください。 ほとんどの場合、date,time,timestamp without time zone, およびtimestamp with time zoneの組み合わせは、どのアプリケーションでも必要な完全な日付/時刻範囲を提供する必要があります。

を使用すると、現在のセッションのタイムゾーン(TimeZoneパラメータで定義)で現在の時刻を取得できます。

+0

'localtime at time zone 'GMT-2''は' 12:42 ...'を返しますが、正しい時刻は '13:42'です。 postgresql.confを変更せずに、ヘルシンキ/タリンのタイムゾーンをデフォルトで設定したり、ハードコードしたりするにはどうすればよいですか? 'localtime'は10:45を返します。これはさらに悪いです。 – Andrus

+0

いいえ、' AT TIME ZONE'部分を省略してください。あなたは何を達成しようとしていますか? –

関連する問題