16.20 - アンカー ピリオド拡張とアンカー ポイント拡張 - Teradata Database - Teradata Vantage NewSQL Engine

Teradata Vantage™ SQLデータ操作言語

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Release Date
2019年3月
Content Type
プログラミング リファレンス
Publication ID
B035-1146-162K-JPN
Language
日本語 (日本)

PERIOD(DATE)では許可されていない時間オプション

拡張式のデータ型がPERIOD(DATE)で、アンカー間隔でTIME定数を指定すると、リクエストから要求元にエラーが返ります。拡張式のデータ型がPERIOD(DATE)のときはTIMEオプションを指定することはできません。

アンカーEXPAND ON句に対して無効なPERIOD(TIME)およびPERIOD(TIME WITH TIME ZONE)

拡張式のデータ型がPERIOD(TIME)またはPERIOD(TIME WITH TIME ZONE)のいずれかの場合、アンカー間隔は指定できません。そのようにすると、Teradata Databaseはエラーを返します。

Timestampデータ型で指定したTIME定数値を使用する

拡張式の構成要素の型がTimestampデータ型の場合、Teradata Databaseは指定するTIME定数値を使用して、拡張中のアンカーのタイムスタンプ値を定義します。

anchor_nameでDAYを指定する場合、拡張間隔は拡張された行それぞれについてINTERVAL '1' DAYです。

TIME定数を指定しない場合、ANCHOR_MILLISECOND、ANCHOR_SECOND、ANCHOR_MINUTE、ANCHOR_HOUR、WEEK_BEGIN、MONTH_BEGIN、QUARTER_BEGINまたはYEAR_BEGINのアンカー名については、TIME定数値はデフォルトで'00:00:00.000000+00:00'、また、それ以外のアンカー名はデフォルトで'23:59:59.999999+00:00'になります。

デフォルト値の精度は拡張式の精度に設定されます。拡張式でタイム ゾーンを指定すると、デフォルト値にタイム ゾーン値+00:00が含まれます。それ以外の場合、値はセッション タイム ゾーンであり、タイム ゾーンは指定されません。

アンカー、たとえば、MONTH_BEGINはセッション タイムゾーンに基づいて計算されます。そのため、異なるタイム ゾーンにある2つのセッションについては、出力は違うものになります。この例は、例: 異なるタイムゾーンの2つの異なるセッションにおける同一の拡張を参照してください。

MONTH_BEGINを指定して月の最初の日ごとにテーブルを拡張する

毎月カレンダの最初の日ごとにテーブルを拡張するには、アンカー間隔句でMONTH_BEGINを指定します。

結果内の行の拡張された各値は、対応する月の月初日をBEGIN境界として持ち、拡張間隔はデフォルトでINTERVAL '1' MONTHです。各結果行の拡張された値のBEGIN境界は、'YYYY-MM-01'です。

例: EXPAND ON MONTH_BEGINおよびMONTH_ENDで最初のSELECTリクエストを参照してください。

MONTH_ENDを指定して月の最後の日ごとにテーブルを拡張する

毎月カレンダの最後の日ごとにテーブルを拡張するには、アンカー間隔句でMONTH_ENDを指定します。

結果行の拡張された各値は、対応する月の月末日をBEGIN境界として持ち、拡張間隔はデフォルトでINTERVAL '1' MONTHです。

各結果行の拡張された値のBEGIN境界は、'YYYY-MM-DD'です。このとき、DDは、月と年に応じて、28、29、30または31のどれか1つです。

例: EXPAND ON MONTH_BEGINおよびMONTH_ENDで2番目のSELECTリクエストを参照してください。

アンカー間隔句で曜日を指定して特定の曜日ごとにテーブルを拡張する

特定の曜日ごとにテーブルを拡張するには、アンカー間隔句で使用する曜日を指定します。 結果行の拡張された各値の開始境界は、曜日に対応し、拡張間隔はデフォルトでINTERVAL '7' DAYです。

例: WEEK_DAYを使用したアンカー ポイントの拡張を参照してください。