17.10 - 例: TIMESTAMPのCAST - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - データ タイプおよびリテラル

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

次のSELECT文では、CASTの結果は、日付'2008-05-14'と、指定したセッションのタイムゾーン変位INTERVAL -'08:00' HOUR TO MINUTEによってUTCに調整されデフォルトの時間'00:00:00'から生成されるタイムスタンプになります。したがって、CASTの値は、'2008-05-14 08:00:00' (UTC)になります。

UTCでのCASTの結果値は現在のセッションのタイムゾーン変位INTERVAL '05:00:00' HOUR TO MINUTEに調整されるため、SELECT文の結果は次のようになります。TIMESTAMP '2008-05-14 13:00:00'

SET TIME ZONE INTERVAL '05:00' HOUR TO MINUTE;
SELECT CAST(DATE '2008-05-14' AS TIMESTAMP(0) AT -8);

次のSELECT文を考慮します。

SELECT CAST(DATE '2008-05-14' AS TIMESTAMP(0) WITH TIME ZONE AT -8);

この場合、CASTの結果はタイムスタンプになります。このタイムスタンプはソースの式値'2008-05-14'から生成され、デフォルトの時間'00:00:00'は指定されたセッションのタイムゾーン変位(INTERVAL -'08:00' HOUR TO MINUTE)によってUTCに調整されます。したがって、CASTの値は指定されたセッションのタイムゾーン変位INTERVAL -'08:00' HOUR TO MINUTEにより、UTCで'2008-05-14 08:00:00'になります。

UTCでのCASTの結果値はそのタイムゾーン変位INTERVAL -'08:00' HOUR TO MINUTEに調整されるため、SELECT文の結果は、TIMESTAMP '2008-05-14 00:00:00-08:00'になります。現在のセッションのタイムゾーンは影響しません。