TO_UTC_TIMESTAMP スカラー関数

TO_UTC_TIMESTAMP スカラー関数は、タイム・ゾーン・ストリングで指定されたタイム・ゾーンから協定世界時に変換した TIMESTAMP を戻します。 TO_UTC_TIMESTAMP は、ステートメントの決定論的な関数です。

Read syntax diagramSkip visual syntax diagram TO_UTC_TIMESTAMP ( expression , timezone-expression )

スキーマは SYSIBM です。

expression
timezone-expression タイム・ゾーンでのタイム・スタンプを指定する式。 式は DATE、TIMESTAMP、CHAR、 または VARCHAR データ・タイプの値を戻す必要があります。 expression に時刻情報が含まれていない場合は、引数の時刻として午前 0 時 (00.00.00) が使用されます。 Unicode データベースでは、 式は GRAPHIC または VARGRAPHIC のデータ・タイプにすることもできます。 CHAR、VARCHAR、GRAPHIC、および VARGRAPHIC は、暗黙的キャストを介してサポートされます。 expression が CHAR、VARCHAR、GRAPHIC、または VARGRAPHIC のデータ・タイプである場合は、TIMESTAMP スカラー関数で使用できる有効なストリングでなければなりません。
timezone-expression
調整前の expression のタイム・ゾーンを指定する式。 この式は、文字ストリング、数値、または日時の組み込みデータ・タイプの値を戻す必要があります。 Unicode データベースでは、グラフィック・ストリング・データ・タイプの式にすることも可能です。 数値および日時のデータ・タイプは、暗黙的キャストを介してサポートされます。 VARCHAR でない式は、関数の評価の前に VARCHAR にキャストされます。 この式は FOR BIT DATA サブタイプであってはなりません (SQLSTATE 42815)。 expression が非 NULL の場合は、timezone-expression も非 NULL でなければなりません (SQLSTATE 42815)。
timezone-expression の値は、Internet Assigned Numbers Authority (IANA) タイム・ゾーン・データベースにあるタイム・ゾーン名でなければなりません。 IANA データベースのタイム・ゾーン名の標準形式は Area/Locationです。ここで、
  • Area は、大陸や海洋の英語名か、「Etc」という特殊な地域名です。
  • Location は、地域内の場所 (通常は都市または小さな島) の英語名です。
次に例を示します。
  • アメリカ/トロント
  • アジア/サハリン
  • Etc/UTC (協定世界時)

有効なタイム・ゾーン名のセットと、それらのタイム・ゾーンに関連付けられているルールの詳細については、 IANA タイム・ゾーン・データベースを参照してください。 データベース・サーバーは、バージョン 2010c の IANA タイム・ゾーン・データベースを使用します。 新しいバージョンの IANA タイム・ゾーン・データベースが必要な場合は、 IBM® サポートにお問い合わせください。

この関数の結果は、expression がタイム・スタンプの場合は expression と同じ精度のタイム・スタンプになります。 expression が DATE の場合、この関数の結果は TIMESTAMP(0) になります。 そうでない場合には、関数の結果は TIMESTAMP(6) になります。

結果は NULL になる可能性があります。expression が NULL である場合、その結果は NULL 値になります。 expression に NULL でない値を指定した場合は、timezone-expression を NULL にしてはいけません (SQLSTATE 42815)。

結果は、timezone-expression で指定したタイム・ゾーンから協定世界時タイム・ゾーンに調整された expression です。 timezone-expression の戻り値が IANA タイム・ゾーン・データベースに存在するタイム・ゾーンでない場合は、expression の値が調整されずに戻されます。

タイム・スタンプの調整では、まず timezone-expression の協定世界時からの単純な差分が適用されます。 timezone-expression で指定したタイム・ゾーンでのタイム・スタンプで夏時間調整が有効になっている場合は、そのタイム・スタンプに夏時間調整オフセットも適用されます。

夏時間調整時刻を使用するタイム・ゾーンでは、移行の日付にあいまいさが残ります。 タイム・ゾーンが標準の時刻から夏時間調整時刻に変わる時は、その移行によって一定範囲の時間が存在しなくなります。 タイム・ゾーンが夏時間調整時刻から標準の時刻に変わる時は、一定範囲の時間が 2 回存在することになります。 あいまいなタイム・スタンプは、そのタイム・ゾーンで標準の時刻が有効だったという前提で処理されます。

  1. タイム・スタンプ '1970-01-01 00:00:00' を 'America/Denver' のタイム・ゾーンから協定世界時のタイム・ゾーンに変換します。 '1970-01-01 07:00:00' という値の TIMESTAMP が戻されます。
       TO_UTC_TIMESTAMP(TIMESTAMP'1970-01-01 00:00:00', 'America/Denver')
  2. データベース管理者が読み取り専用のグローバル変数 SERVER_TIMEZONE を作成しました。この変数にはサーバーのタイム・ゾーンが入ります。 この例の場合、SERVER_TIMEZONE ユーザー定義グローバル変数は 'America/Denver' に設定されます。

    タイム・スタンプ '1970-01-01 00:00:00' をサーバーのタイム・ゾーンから協定世界時のタイム・ゾーンに変換します。 '1970-01-01 07:00:00' という値の TIMESTAMP が戻されます。

       TO_UTC_TIMESTAMP(TIMESTAMP'1970-01-01 00:00:00', SERVER_TIMEZONE)