timezone - Amazon Redshift

timezone

値 (デフォルトは太字)

UTC、タイムゾーン

構文

SET timezone { TO | = } [ time_zone | DEFAULT ] SET time zone [ time_zone | DEFAULT ]

説明

現在のセッションのタイムゾーンを設定します。タイムゾーンは、協定世界時 (UTC) またはタイムゾーン名からのオフセットにすることができます。

注記

クラスターパラメータグループを使用して timezone 設定パラメータを設定することはできません。タイムゾーンは、SET コマンドを使用して現在のセッションにのみ設定できます。指定のデータベースユーザーが実行するすべてのセッションのタイムゾーンを設定するには、ALTER USERコマンドを使用します。ALTER USER … SET TIMEZONE は、現在のセッションではなく後のセッションのタイムゾーンを変更します。

SET timezone または TO を含む = (1 語) コマンドを使用してタイムゾーンを設定する場合、以下に示すように、time_zone をタイムゾーン名、POSIX スタイル形式のオフセット、または ISO-8601 形式のオフセットとして指定できます。

SET timezone { TO | = } time_zone

TO または = を指定せずに SET タイムゾーンコマンドを使用してタイムゾーンを設定する場合、以下に示すように、time_zone を INTERVAL と、タイムゾーン名、POSIX スタイル形式のオフセット、または ISO-8601 形式のオフセットとして指定できます。

SET time zone time_zone

タイムゾーン形式

Amazon Redshift では、以下のタイムゾーン形式がサポートされます。

  • タイムゾーンの名前

  • INTERVAL

  • POSIX スタイルのタイムゾーン指定

  • ISO-8601 オフセット

タイムゾーンの省略形 (PST や PDT など) は、UTC からの固定オフセットとして定義されており、夏時間ルールは含まれていないため、SET コマンドではタイムゾーンの省略形がサポートされていません。

タイムゾーン形式の詳細については、以下を参照してください。

タイムゾーン名 – America/New_York などのフルタイムゾーン名。フルタイムゾーン名には、夏時間ルールを含めることができます。

タイムゾーン名の例を以下に示します。

  • Etc/Greenwich

  • America/New_York

  • CST6CDT

  • GB

注記

EST、MST、NZ、UCT などの多くのタイムゾーン名も省略形です。

有効なタイムゾーン名のリストを表示するには、次のコマンドを実行します。

select pg_timezone_names();

INTERVAL – UTC からのオフセット。例えば、PST は -8:00、つまり -8 時間です。

INTERVAL タイムゾーンオフセットの例を以下に示します。

  • –8:00

  • -8 時間

  • 30 分

POSIX スタイルの形式STDoffset または STDoffsetDST 形式でのタイムゾーン指定。STD はタイムゾーンの省略形、offset は UTC から西方向への時間数の数値オフセット、DST はオプションの夏時間ゾーン省略形です。夏時間は、特定のオフセットより 1 時間早いことを前提としています。

POSIX スタイルのタイムゾーン形式では、グリニッジから西方向に正のオフセットが使用されます。これは、グリニッジから東方向に正のオフセットを使用する ISO-8601 規則とは対照的です。

POSIX スタイルのタイムゾーンの例を以下に示します。

  • PST8

  • PST8PDT

  • EST5

  • EST5EDT

注記

Amazon Redshift は、POSIX スタイルのタイムゾーン仕様を検証しないため、タイムゾーンを無効な値に設定する可能性があります。例えば、次のコマンドはタイムゾーンを無効な値に設定しますが、エラーを返しません。

set timezone to ‘xxx36’;

ISO-8601 オフセット±[hh]:[mm] 形式の UTC からのオフセット。

ISO-8601 オフセットの例を以下に示します。

  • -8:00

  • +7:30

次の例では、現在のセッションのタイムゾーンを New York に設定します。

set timezone = 'America/New_York';

次の例では、現在のセッションのタイムゾーンを UTC–8 (PST) に設定します。

set timezone to '-8:00';

次の例では、INTERVAL を使用してタイムゾーンを PST に設定します。

set timezone interval '-8 hours'

次の例では、現在のセッションのタイムゾーンをシステムデフォルトのタイムゾーン (UTC) に設定します。

set timezone to default;

データベースユーザーのタイムゾーンを設定するには、ALTER USER … SET ステートメントを使用します。次の例では、dbuser のタイムゾーンを New York に設定します。新しい値は、後のすべてのセッションのユーザーに対して維持されます。

ALTER USER dbuser SET timezone to 'America/New_York';