17.05 - SET TIME ZONEの例 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 構文規則および例

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

例: タイムゾーンをLOCALに設定

この例はセッションのデフォルトのタイムゾーン変位をLOCAL(システムのデフォルトのタイムゾーン)に設定します。

     SET TIME ZONE LOCAL;

例: タイムゾーンをUSERに設定

この例はセッションのデフォルトのタイムゾーン変位をUSER (リクエストを実行するログオン ユーザーのデフォルトのタイムゾーン)に設定します。

     SET TIME ZONE USER;

例: 単純な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;

例: タイムゾーン文字列を使用したタイムゾーンの設定

この例は、単純な定数タイムゾーン文字列式を指定することにより、セッションのデフォルトのタイムゾーン変位を設定します。Vantageが次にこのストリングをシステム定義のUDFに渡すと、UDFはこれを解釈し、ストリングの値に基づいてデフォルトのタイムゾーン変位を設定します。

SET TIME ZONE 'America Eastern';

指定したtime_zone_stringの値が有効ではない場合、リクエストはアボートし、Vantageは要求元に次のエラーを返します。

*** Failure 7455 Invalid Time Zone specified.