タイムゾーン変位INTERVAL '09:00' HOUR TO MINUTEでの現在の日付がDATE '2008-05-14'で、タイムゾーンINTERVAL -'08:00' HOUR TO MINUTEでの現在の日付はDATE '2008-05-13'だと仮定します。次のSELECT文は、次の結果を返します。TIMESTAMP '2008-05-14 08:30:00'
SET TIME ZONE INTERVAL '09:00' HOUR TO MINUTE; SELECT CAST(TIME '08:30:00' AS TIMESTAMP(0) AT -8);
現在のセッションのタイムゾーン変位INTERVAL '09:00' HOUR TO MINUTEを使用して、文字列定数のUTC値'23:30:00'を決定します。CASTの場合は、ソースの式値'23:30:00' (UTC)が、ターゲットのタイムゾーン変位INTERVAL -'08:00' HOUR TO MINUTEに調整され、'15:30:00'が導き出されます。
タイムゾーン変位INTERVAL -'08:00' HOUR TO MINUTEでの現在の日付'2008-05-13'と、上記の調整後に取得したソースの式値の時間部分'15:30:00'からタイムスタンプが生成されます。タイムゾーン変位INTERVAL -'08:00' HOUR TO MINUTEでの、この結果のタイムスタンプ'2008-05-13 15:30:00'はUTCに合わせて調整されるため、CASTの結果はUTCで'2008-05-13 23:30:00'になります。
UTCでのCASTの結果値は現在のセッションのタイムゾーン変位INTERVAL '09:00:00' HOUR TO MINUTEに調整されるため、SELECT文の結果は次のようになります。TIMESTAMP '2008-05-14 08:30:00'