1. ホーム
  2. postgresql

[解決済み] Postgresのデフォルトタイムゾーン

2022-06-16 10:22:59

質問

私は PostgreSQL 9 をインストールしたところ、表示される時間がサーバーの時間より1時間遅れています。

実行中 Select NOW() を表示します。 2011-07-12 11:51:50.453842+00

サーバーの日付が表示されます。 Tue Jul 12 12:51:40 BST 2011

1 時間遅れていますが、タイムゾーンは phppgadminTimeZone Etc/GMT0

の中に入ってみましたが postgresql.conf を設定し

タイムゾーン = GMT

を実行した後、再起動を実行しても変化なし。

サーバーのタイムゾーンを使用していると思ったのですが、明らかに違うようです!

解決策! 私は設定しました。 GMT に設定したのですが、1時間遅れになってしまいました。いろいろ調べた結果、この設定を Europe/London . これは、英国の夏時間の+1時間を考慮したものです。

どのように解決するのですか?

タイムゾーンはセッションパラメータです。そのため、現在のセッションのタイムゾーンを変更することができます。

参照 ドキュメント .

set timezone TO 'GMT';


あるいは、より標準SQLに近い形で SET TIME ZONE コマンドを使用することもできます。上のコードでは 1 つの単語 "timezone" を使用しているのに対し、"TIME ZONE" は 2 つの単語であることに注意してください。

SET TIME ZONE 'UTC';

docでは、その違いを説明しています。

SET TIME ZONEは標準SQLで定義された構文を拡張したものです。標準SQLは数値による時間帯オフセットのみを許可していますが、PostgreSQLではより柔軟な時間帯指定が可能です。他の全てのSET機能はPostgreSQLの拡張です。