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

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Published
2021年1月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/vnq1596660420420.ditamap
dita:ditavalPath
ja-JP/vnq1596660420420.ditaval
dita:id
B035-1146
Product Category
Software
Teradata Vantage

拡張中の期間値の開始境界は、行を拡張する前に、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