PostgreSQL
0

PostgreSQL - タイムゾーンをDBに設定する

More than 1 year has passed since last update.

概要

postgresのタイムゾーンはpostgresql.confに設定するが、9.1以前は固定されていない(コメントアウト)。

#timezone = unknown         # actually, defaults to TZ environment
                    # setting

バージョンアップでデフォルトが変更された時の影響を考えて固定にしておく。
DB毎に個別に設定を行う。

PostgreSQL マニュアル

構文

ALTER DATABASE

ALTER DATABASE name SET configuration_parameter { TO | = } { value | DEFAULT }

SET

SET [ SESSION | LOCAL ] TIME ZONE { timezone | LOCAL | DEFAULT }

TIME ZONE
SET TIME ZONE valueはSET timezone TO valueの別名です。 SET TIME ZONE構文では、時間帯の指定に特殊な構文を使用できます。

設定できるタイムゾーン

pg_timezone_names

pg_timezone_namesは、SET TIMEZONEで認識される時間帯名称の一覧を提供します。

設定の反映

システム管理関数

表9.77 サーバシグナル送信関数

名前 戻り型 説明
pg_reload_conf() boolean サーバプロセスに構成ファイルの再読み込みをさせる

実行

タイムゾーンの確認

SELECT * FROM pg_timezone_names;

設定

ALTER DATABASE exsampledb SET timezone TO 'Asia/Tokyo';

反映

SELECT pg_reload_conf();