タイム・ゾーン変換 — TODIFFERENETTIMEZONE (Oracle)

TIMESTAMP WITH TIME ZONE 値を別のタイム・ゾーンに変換するには、この関数を使用します。 この機能は、 CDC Replication Engine for Oracle データベースにのみ適用されます。

Oracle データベースには、以下の 2 つの異なる TIMESTAMP タイプのデータ・タイプがあります。

TIMESTAMP WITH LOCAL TIME ZONE
暗黙的なタイム・ゾーン (データベースのタイム・ゾーン) を含みます。
TIMESTAMP WITH TIME ZONE
明示的なタイム・ゾーンを含みます。

TIMESTAMP WITH TIME ZONE のレプリケーションは、現在 CDC Replication Engine for Oracle データベースによってサポートされていますが、TIMESTAMP WITH LOCAL TIME ZONE のレプリケーションはサポートされていません。 TODIFFERENETTIMEZONE 式は、この両方のデータ・タイプをサポートしています。

構文

%TODIFFERENTTIMEZONE (timestamp_column, time_zone [, sentinel_timestamp1 [, sentinel_timestamp2]...)

パラメーター

タイム・スタンプ列
ソース列の名前を指定します。 入力パラメーターとしてジャーナル管理フィールド、式、または列関数を指定できません。 このパラメーターには、TIMESTAMP WITH LOCAL TIME ZONE (式が派生列として使用される場合) または TIMESTAMP WITH TIME ZONE 列 (式がターゲット上で派生列または派生式として使用される場合) を使用できます。
time_zone
宛先のタイム・ゾーンを指定します。 タイム・ゾーンには、“+|-HH:MM”の形式でオフセットを指定するか、または IANA タイム・ゾーン名で指定できます。
[, sentinel_timestamp1 [, sentinel_timestamp2]...
変換が想定されていない 1 つ以上のタイム・スタンプ・リテラルを指定します。 値は、“YYYY-MM-DD HH24:MI:SS”の形式で指定する必要があります。 最初のパラメーターと標識値の比較では、タイム・スタンプ部分がリテラルとして比較されます (TIMESTAMP WITH TIME ZONE 値では、オフセット/地域の情報は無視されます)。

結果データ・タイプ

派生式は TIMESTAMP WITH TIME ZONE 値を返します。

入力値 結果
(TSMP, “-08:00”) TSMP 列の値がオフセット -08:00 を使用して変換されます。
(TSP_COL, ”America/New_York”) TSP_COL 列の値が米国/ニューヨークのタイム・ゾーンに変換されます。
(TSP_COL, ”America/New_York”, “2015-01-01 00:00:00”) TSP_COL の値が標識タイム・スタンプ 2015-01-01 00:00:00 と一致しない限り、TSP_COL 列の値が米国/ニューヨークのタイム・ゾーンに変換されます。 値が一致する場合、変換は行われません。 TSP_COL のデータ・タイプが TIMESTAMP WITH LOCAL TIME ZONE の場合、返された値が明示的なタイム・ゾーンを持つ必要があるため、返される値は、データベースのタイム・ゾーンを使用して明示的にフォーマット設定されます。