16.20 - expression - 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-1144-162K-JPN
Language
日本語 (日本)

セッションのデフォルト タイムゾーンの値を、式の数値で指定した時間単位の変位に設定します。

Teradata Databaseは、可能な場合は式を必要に応じて暗黙的に変換して、タイムゾーン変位にします。expressionは、単純な定数式です。

数値式データ型に対してTeradata Databaseが暗黙的に実行するデータ変換の一覧については、<Teradata Vantage™ SQLデータ定義言語 - 詳細トピック、B035-1184>の「SET TIME ZONE」を参照してください。

例: 単純なINTERVAL HOUR TO MONTHタイムゾーン定数式変位文字列を使用したタイムゾーンの設定

この例では、INTERVAL HOUR TO MONTHタイムゾーン変位文字列を指定することにより、セッションのデフォルトのタイムゾーン変位を設定します。

     SET TIME ZONE INTERVAL '08:00' HOUR TO MINUTE;

例: 単純な定数式を使用したタイムゾーンの設定

最初の例は、単純な+1の定数式を指定して、タイムゾーン変位をINTERVAL HOUR '01:00' MINUTEだけ進めて設定します。

     SET TIME ZONE +1;

AT句を含む次のSELECTリクエストを実行依頼する場合(<Teradata Vantage™ SQL日付と時刻の関数および式、B035-1211>の「GetTimeZoneDisplacement」を参照)、タイムゾーンの変位INTERVAL -'08:00’ HOUR TO MINUTEまたは'08/05/31'の日付が返されます。

     SELECT CAST((TIMESTAMP '2008-06-01 08:30:00' AT TIME ZONE -8) 
            AS DATE AT SOURCE TIME ZONE);

次のSELECTリクエストは、ターゲットのデータ型にAT句を付けない場合の結果を示しています。

     SET TIME ZONE INTERVAL '01:00' HOUR TO MINUTE;
     SELECT TIMESTAMP '2008-06-01 08:30:00'
            AT TIME ZONE INTERVAL -'08:00' HOUR TO MINUTE;
2008-06-01 08:30:00 AT TIME ZONE INTERVAL -8:00 HOUR TO MINU
------------------------------------------------------------
2008-05-31 23:30:00-08:00

ターゲットのデータ型にAT句を付けずに、またはAT LOCAL句を付けて、同じSELECTリクエストを実行した場合、このリクエストは現在のセッションのタイムゾーン変位INTERVAL HOUR '01:00' MINUTEに対して'08/06/01'を返します。

     SELECT CAST((TIMESTAMP '2008-06-01 08:30:00'
            AT TIME ZONE INTERVAL -'08:00' HOUR TO MINUTE) AS DATE);
2008-06-01 08:30:00 AT TIME ZONE INTERVAL -8:00 HOUR TO MINU
------------------------------------------------------------
08/06/01

次の例は、AT句を付けずにSELECTリクエストと現行セッションのタイムゾーン変位INTERVAL -'08:00' HOUR TO MINUTEを指定して返された結果を示します。

     SET TIME ZONE INTERVAL -'08:00' HOUR TO MINUTE;
     SELECT CAST((CAST(TIMESTAMP '2008-06-01 08:30:00+01:00' 
            AS TIMESTAMP(0))
            AT TIME ZONE INTERVAL -'08:00' HOUR TO MINUTE) AS DATE);
2008-06-01 08:30:00+01:00 AT TIME ZONE INTERVAL -8:00 HOUR T
------------------------------------------------------------
08/05/31

この例は、現行セッションのタイムゾーン変位をINTERVAL '08:00' HOUR TO MINUTEに設定します。

     SET TIME ZONE INTERVAL '08:00' HOUR TO MINUTE;