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

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
ft:locale
ja-JP
ft:lastEdition
2021-03-30
dita:mapPath
ja-JP/zsn1556242031050.ditamap
dita:ditavalPath
ja-JP/zsn1556242031050.ditaval
dita:id
B035-1143
Product Category
Software
Teradata Vantage

次の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'になります。現在のセッションのタイムゾーンは影響しません。