FROM_UTC_TIMESTAMP スカラー関数
FROM_UTC_TIMESTAMP スカラー関数は、協定世界時からタイム・ゾーン・ストリングで指定されたタイム・ゾーンに変換した TIMESTAMP を戻します。 FROM_UTC_TIMESTAMP は、ステートメントの決定論的な関数です。
スキーマは SYSIBM です。
- 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 回存在することになります。 あいまいなタイム・スタンプは、そのタイム・ゾーンで標準の時刻が有効だったという前提で処理されます。
例
- 協定世界時のタイム・スタンプ '2011-12-25 09:00:00.123456' を 'Asia/Tokyo' のタイム・ゾーンに変換します。 '2011-12-25 18:00:00.123456' という値の TIMESTAMP が戻されます。
FROM_UTC_TIMESTAMP(TIMESTAMP '2011-12-25 09:00:00.123456', 'Asia/Tokyo')
- 協定世界時のタイム・スタンプ '2014-11-02 06:55:00' を 'America/Toronto' のタイム・ゾーンに変換します。 '2014-11-02 01:55:00' という値の TIMESTAMP が戻されます。
FROM_UTC_TIMESTAMP(TIMESTAMP'2014-11-02 06:55:00', 'America/Toronto')
- 協定世界時のタイム・スタンプ '2015-03-02 06:05:00' を 'America/Toronto' のタイム・ゾーンに変換します。 '2015-03-02 01:05:00' という値の TIMESTAMP が戻されます。
FROM_UTC_TIMESTAMP(TIMESTAMP'2015-03-02 06:05:00', 'America/Toronto')