結果値 - Teradata Database - Teradata Vantage NewSQL Engine - RDIFF関数の結果値。

Teradata Vantage™ SQL日付と時刻の関数および式

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/pxz1544241488545.ditamap
dita:ditavalPath
ja-JP/pxz1544241488545.ditaval
dita:id
B035-1211
Product Category
Software
Teradata Vantage
  • 例えば、p1およびp2が比較できる期間式であると仮定します。p1 OVERLAPS p2がTRUE、END(p1)がEND(p2)より大きい場合、p1 RDIFF p2はPERIOD(END(p2), END(p1))を返します。期間式がNULL、p1 OVERLAPS p2がFALSEまたはEND(p1)がEND(p2)より大きくない場合、結果はNULLとなります。
  • 期間式の間で精度が異なるPERIOD(TIME(n) [WITH TIME ZONE])またはPERIOD(TIMESTAMP(n) [WITH TIME ZONE])データ型があると、結果は精度が高い方になります。期間式のいずれかにタイムゾーンが含まれ、もう1つの期間式に含まれていない場合、結果には各要素のタイムゾーンが含まれています。結果のタイムゾーンは、次に示すルールを使用して評価されます。
    • 両方の期間式に1つのタイムゾーンがあると、結果の境界に含まれるタイムゾーンの変移は、後述のPeriod値コンストラクタで定義されているように、期間式の該当する境界から取得されます。
    • どちらか一方の期間式にのみタイムゾーンがある場合、もう一方の期間式は現在のセッションのタイムゾーンにあるとみなされ、結果は次に示すように計算されます。

例えば、p1およびp2が期間式で、上述のとおりに決定された結果の構成要素のタイプがrtだとします。p1 OVERLAPS p2がTRUEの場合、p1 RDIFF p2の結果は次のようになります。

PERIOD(
  CASE WHEN CAST(END(p1) AS rt) > CAST(END(p2) AS rt)
     THEN CAST(END(p2) AS rt)
     ELSE NULL END,
  CASE WHEN CAST(END(p1) AS rt) > CAST(END(p2) AS rt)
     THEN CAST(END(p1) AS rt)
     ELSE NULL END)

内部的には、Period値はUTCで保存されます。その後で、それらの値のUTC表示形式を使用してOVERLAPS演算子が評価され、重複があるとRDIFF操作が実行されます。