AT TIME ZONE 関数
AT TIME ZONE は、TIMESTAMP 式または TIMESTAMPTZ 式で使用するタイムゾーンを指定します。
構文
AT TIME ZONE 'timezone'
引数
- timezone
-
戻り値の
TIMEZONE
。タイムゾーンは、タイムゾーン名 ('Africa/Kampala'
または'Singapore'
など) またはタイムゾーンの略名 ('UTC'
または'PDT'
など) として指定できます。サポートされるタイムゾーン名のリストを表示するには、次のコマンドを実行します。
select pg_timezone_names();
サポートされるタイムゾーン省略形のリストを表示するには、次のコマンドを実行します。
select pg_timezone_abbrevs();
詳細な説明と例については、「タイムゾーンの使用上の注意」を参照してください。
戻り型
TIMESTAMP 式で使用する場合は TIMESTAMPTZ。TIMESTAMPTZ 式で使用する場合は TIMESTAMP。
例
次の例では、タイムゾーンのないタイムゾーン値を変換して MST 時間 (POSIX では UTC+7) として解釈します。この例では、UTC タイムゾーンのデータ型 TIMESTAMPTZ の値を返します。デフォルトのタイムゾーンを UTC 以外のタイムゾーンに設定すると、異なる結果が表示される場合があります。
SELECT TIMESTAMP '2001-02-16 20:38:40' AT TIME ZONE 'MST';
timezone ------------------------ 2001-02-17 03:38:40+00
次の例では、指定されたタイムゾーンが EST (POSIX では UTC+5) であるタイムゾーン値を持つ入力タイムスタンプを取得し、それを MST (POSIX では UTC+7) に変換します。この例では、データ型 TIMESTAMP の値を返します。
SELECT TIMESTAMPTZ '2001-02-16 20:38:40-05' AT TIME ZONE 'MST';
timezone ------------------------ 2001-02-16 18:38:40