タイム・ゾーン変換 — 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 の場合、返された値が明示的なタイム・ゾーンを持つ必要があるため、返される値は、データベースのタイム・ゾーンを使用して明示的にフォーマット設定されます。 |