SET variable { TO | = } { value | 'value' | DEFAULT } SET TIME ZONE { 'timezone' | LOCAL | DEFAULT }
SET コマンドは実行時設定パラメータを 変更します。以下のパラメータは変えることができます。
クライアント側のマルチバイト・エンコーディングを設定します。指定された エンコードはバックエンドでサポートされなければいけません。
このオプションは Postgres が マルチバイトサポートで構築されている場合のみ有効です。
日付/時間表示様式を選択します。二つの個別の設定が行なわれます。 デフォルトの日付/時間出力と不明瞭な入力の解釈です。
以下は日付/時間出力の様式です。
ISO 8601 様式の日付と時間を使います。(YYYY-MM-DD HH:MM:SS)。これはデフォルトです。
Oracle/Ingres 様式の日付と時間を使います。この様式は SQL (ISO 8601 様式を使っています)とは無関係で、このオプションの 名前は歴史的偶然によってつけられました。
伝統的な Postgres の形式を使います。
数値型の日付表示に dd.mm.yyyy を使います。
以下の二つのオプションは、"SQL" のサブスタイルと "Postgres" の出力フォーマット、そして不明瞭な 日付入力の好ましい解釈を決定します。
数値型の日付表示に dd/mm/yyyy を使います。
数値型の日付表示に mm/dd/yyyy を使います。
SET DATESTYLE の値は最初のリスト(出力様式) 、もしくは二番目のリスト(サブスタイル)のどれか、もしくは それぞれのカンマで区切られたもののどれかを使うことが可能です。
日付フォーマットの初期化は下記のように行なうことができます。
環境変数 PGDATESTYLE を設定します。 もし PGDATESTYLE が libpq に基づくクライアントのフロントエンド 環境で設定されると、libpq は自動的に DATESTYLE を 接続開始の間に PGDATESTYLE に設定します。 |
日付を European 規定に設定するようにオプション -o -e を使って postmaster を起動します。 |
DateStyle オプションはアプリケーションの移植 のためだけに意図されたものです。日付/時間の値を選択したものに フォーマットするためには、関数の to_char ファミリーを使います。
乱数発生のための内部シードを設定します。
random 関数が使うシードの値です。 認められる値は 0 から 1 までの浮動小数点の数で、 2^31-1 で積算されます。この積は、もし範囲外の数が使われると 警告なしでオーバーフローします。
シードは setseed SQL 関数を 呼び出すことによっても設定できます。
SELECT setseed(value);
サーバ側のマルチバイトエンコーディングを設定します。
このオプションは、Postgresが マルチバイトサポートを使って構築された場合にのみ有効です。
タイムゾーンの可能な値は使用しているオペレーティングシステム によって異なります。例えば、Linux では /usr/share/zoneinfo がタイムゾーンの データベースを持っています。
ここではタイムゾーンのいくつかの有効な値を挙げます。
タイムゾーンをカリフォルニアに設定します。
タイムゾーンをポルトガルに設定します。
タイムゾーンをイタリアに設定します。
タイムゾーンをユーザのローカルタイムゾーン(使用している オペレーティングシステムがデフォルトで設定されているもの) に設定します。
もし無効なタイムゾーンが指定されると、タイムゾーンは (ほとんどのシステムでいいかげんながらも)GMT に 設定されます。
もし PGTZ 環境変数が libpq に基づくクライアントのフロントエンド 環境に設定されている場合 libpq は接続を開始する間に自動的に TIMEZONE を PGTZ の値に設定します。
他の実行時パラメータの拡張されたリストは 管理者用ガイド で見ることができます。
現在のパラメータの設定を表示するために SHOWを使います。
成功した場合に返されるメッセージです。
設定しようとしたパラメータは存在しません。
特定の設定にアクセスするためにはスーパーユーザでなくては いけません。
サーバが起動されると、いくつかのパラメータが固定されます。
日付の様式を伝統的 Postgres の European 形式に設定します。
SET DATESTYLE TO Postgres,European;タイムゾーン指定子の大文字属性を保持するために二重引用符を使い、 (ここでは日付/時間フォーマットが ISO であることに注意してください) タイムゾーンをカリフォルニア、バークレイに設定します。
SET TIME ZONE "PST8PDT"; SELECT CURRENT_TIMESTAMP AS today; today ------------------------ 1998-03-31 07:41:21-08タイムゾーンをイタリアに設定します(特殊文字を扱うのに必要とされる 単一もしくは二重引用符に注意して下さい)。
SET TIME ZONE 'Europe/Rome'; SELECT CURRENT_TIMESTAMP AS today; today ------------------------ 1998-03-31 17:41:31+02