17.10 - 例: 異なるタイムゾーン間隔を使用した2つの異なるセッションにおける同一の拡張 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ操作言語

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1146-171K-JPN
Language
日本語 (日本)

拡張中の期間値の開始境界は、行を拡張する前に、time_literalで指定した時間に開始するよう調整されます。アンカー ポイント、たとえば、MONTH_BEGINは、セッション タイムゾーンに基づいて計算されます。結果として、2つの異なるタイムゾーンにある2つのセッションでは、出力が異なる場合があります。

この例では、最初のセッションのタイム ゾーンはINTERVAL -'01:00' HOUR TO MINUTEに設定され、2つめのセッションのタイム ゾーンはINTERVAL '02:00' HOUR TO MINUTEに設定されます。

最初のセッションは以下のようにタイム ゾーンを設定し、示されているSELECT文はMONTH_BEGINにアンカーされて出されます。

     SET TIME ZONE INTERVAL -'01:00' HOUR TO MINUTE;
     SELECT id, quantity, BEGIN(pd) AS bg
     FROM ttimestamp
     EXPAND ON PERIOD bg BY ANCHOR MONTH_BEGIN;
id Quantity bg
11 110 2005-03-01 00:00:00
11 110 2005-04-01 00:00:00
11 110 2005-05-01 00:00:00
11 110 2005-06-01 00:00:00
10 100 2004-02-01 00:00:00
10 100 2004-03-01 00:00:00
10 100 2004-04-01 00:00:00
10 100 2004-05-01 00:00:00

2番目のセッションで実行された同じSELECT文の出力では追加の1つの行を返しています(オレンジ色の影付きの行)。

     SET TIME ZONE INTERVAL '02:00' HOUR TO MINUTE;
     SELECT id, quantity, BEGIN(pd) AS bg
     FROM ttimestamp 
     EXPAND ON PERIOD bg BY ANCHOR MONTH_BEGIN;
id Quantity bg
11 110 2005-02-01 00:00:00
11 110 2005-03-01 00:00:00
11 110 2005-04-01 00:00:00
11 110 2005-05-01 00:00:00
11 110 2005-06-01 00:00:00
10 100 2004-02-01 00:00:00
10 100 2004-03-01 00:00:00
10 100 2004-04-01 00:00:00
10 100 2004-05-01 00:00:00E