AS OF句がテンポラル修飾子として文内で明示的に指定されるか、セッション テンポラル修飾子として暗黙的に指定されると、その使用効果は問合わせ全体に作用します。(AS OF句はFROM句にも指定できますが、そのような使用法はFROM句で対応するテーブルにのみ有効です。詳細は、FROM句(テンポラル形式)を参照してください。)
date_timestamp_expressionは、日付値またはタイムスタンプ値で評価される定数、スカラーUDF、スカラー サブクエリー、またはビジネス カレンダ関数にすることができます。
valid-timeテーブルに対するAs Of valid-time問合わせに適用されるルールは、次のとおりです。
- valid-timeテーブルに対するAs Of valid-time問合わせは、結果セットとしてスナップショット テーブルを生成します。
- AS OFテンポラル修飾子をvalid-time次元に指定すると、その修飾子は問合わせ内のすべてのvalid-timeテーブルに適用されます。valid-timeテーブルのvalid-time列は問合わせの有効範囲に入り、その列はWHERE条件やJOIN条件を含め問合わせブロック内のどこででも使用できるようになります。
- AS OFテンポラル修飾子を指定した問合わせの動作は、AS OF時刻を指定したcurrent問合わせが発行されたときと同じになります。ただし、current問合わせは有効行のみを読み込みますが、As Of問合わせでは非有効行も読み込むことができます。
- AS OF修飾子をvalid-time次元に指定することは、指定した時刻と重なる有効期間を持つ行だけが問合わせに関与する資格を持つという条件を追加することになります。それ以降、すべての基礎テーブルが問合わせでは非valid-timeテーブルとして扱われます。結合や集約などの操作、および集合演算は、この修飾子の影響を受けません。
- date_time_expressionのデータ型は、valid-time列の要素型と比較可能なものにする必要があります。次のルールが適用されます。
date_time_expressionのデータ型 | テンポラル列の要素型 | 詳細 |
---|---|---|
DATE | DATE | データ型は比較可能です。 |
DATE | TIMESTAMP[(n)] [WITH TIME ZONE] | DATE値はTIMESTAMP(n)にキャストされてから、修飾に使用されます。変換されたタイムスタンプ値の時間部分は、セッションのタイムゾーンの00:00:00 (hh:mi:ss)になります。行はUTCタイムスタンプ値に基づいて修飾されます。 |
TIMESTAMP[(n)] [WITH TIME ZONE] | DATE | テンポラル列値はTIMESTAMP(n)にキャストされてから、修飾に使用されます。変換されたタイムスタンプ値の時間部分は、セッションのタイムゾーンの00:00:00 (hh:mi:ss)になります。行はUTCタイムスタンプ値に基づいて修飾されます。 |
TIMESTAMP[(n)] [WITH TIME ZONE] | TIMESTAMP[(m)] [WITH TIME ZONE] | 精度の低い方のタイムスタンプ値が、精度の高い方に変換されてから、行が修飾されます。 |
その他のデータ型 | DATE | Teradata Databaseによりエラーが報告されます。 |
TIMESTAMP[(n)] [WITH TIME ZONE] |
問合わせに二重テンポラル テーブルまたはtransaction-timeテーブルが関与する場合は、transaction-time次元に適用される追加情報に関する以下のトピックを参照してください。