TIME(n) [WITH TIME ZONE]値は、CAST関数を使用するとPERIOD(TIME[(n)] [WITHTIMEZONE])またはPERIOD(TIMESTAMP[(n)] [WITH TIME ZONE])としてキャストできます。
ターゲットの精度がソースの精度より高い場合、精度を調整するために結果の境界の末尾にゼロが追加されます。ターゲットの精度がソースの精度より低い場合、エラーが報告されます。
ソースのTIME値にうるう秒が含まれている場合、秒部分はターゲットの精度にまで精度を切り詰めた59.999999に調整されます。
ターゲットのタイプがPERIOD(TIME[(n)] [WITH TIME ZONE])の場合、結果の開始要素は(UTCでの)ソースの値に設定されます。ターゲット タイプがPERIOD(TIMESTAMP[(n)] WITH TIME ZONE)の場合、ソースの時間値は、対応するUTC値を基に現在のセッションのタイムゾーン変位に調整され、結果の開始要素の日付部分はCURRENT_DATEに設定されます。時間部分は前述の調整を実行した後に取得したソースの値に設定され、結果のタイムスタンプ値はUTCに変換されます。ソースとターゲットのタイプがどちらもWITH TIME ZONEの場合、結果の開始要素のタイムゾーンフィールドはソースのタイムゾーンフィールドに設定されます。ターゲットにのみWITH TIME ZONEがある場合、結果の開始要素のタイムゾーンフィールドは現在のセッションのタイムゾーン変位に設定されます。結果の終了要素は、結果の開始境界にターゲット タイプの1最小単位を加算したものに設定されます。結果の終了境界の値が、PERIOD(TIME[(n)] [WITH TIME ZONE])のターゲット タイプの結果の開始境界よりも小さい場合、または結果の終了要素の値が、PERIOD(TIMESTAMP[(n)] [WITH TIME ZONE])のターゲット タイプの対応するTIMESTAMP値の最大値よりも大きい場合、エラーが報告されます。
また、結果は開始境界と最後の値が同じ値になることに注意してください。