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