例 - Teradata Database - Teradata Vantage NewSQL Engine - TIMESTAMPからDATEへの変換の例。

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

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/xnq1529717274657.ditamap
dita:ditavalPath
ja-JP/xnq1529717274657.ditaval
dita:id
B035-1143
Product Category
Software
Teradata Vantage

次の文を考えてみましょう。

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

このSELECT文は、タイムゾーン変位INTERVAL -'08:00' HOUR TO MINUTEの日付を返します。つまり、この文は'08/05/31'を返します。このSELECT文にAT句が指定されていない、またはAT LOCAL句が指定されている場合は、現在のセッションのタイムゾーン変位INTERVAL HOUR '01:00' MINUTEの'08/06/01'が返されることになります。

次に、AT句が指定されていなかった場合の、SELECT文の結果を示します。

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 MINUTE
--------------------------------------------------------------
                                     2008-05-31 23:30:00-08:00
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 MINUTE
--------------------------------------------------------------                                                      08/06/01

次に、現在のセッションのタイムゾーン変位がINTERVAL -'08:00' HOUR TO MINUTEで、AT句が指定されていないSELECT文の結果を示します。

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 TO MINUTE
--------------------------------------------------------------------
                                                            08/05/31