DATE値は、CAST関数を使用するとPERIOD(DATE)またはPERIOD(TIMESTAMP[(n)] [WITH TIME ZONE])としてキャストできます。DATE値をPERIOD(TIME[(n)] [WITH TIME ZONE])としてキャストしようとすると、エラーが報告されます。
ターゲット タイプがPERIOD(DATE)の場合、結果の開始要素はソースの値に設定されます。結果の終了要素は、結果の開始境界にターゲット タイプの1最小単位(つまり、INTERVAL '1' DAY)を加算したものに設定されます。結果の終了境界が最大DATE値を超える(つまり、ソースの値が最大DATE値に等しい)場合や、結果の終了境界が最大DATE値に等しい(つまり、結果の終了境界値がUNTIL_CHANGEDの値に等しい)場合、エラーが報告されます。
ターゲット タイプがPERIOD(TIMESTAMP[(n)])の場合、結果の開始要素は現在のセッションのタイムゾーン、ソースDATE値によって作成されたタイムスタンプ値、およびゼロの時間部分を使用して得られるUTC値に設定されます。結果の終了要素は、結果の開始境界にターゲット タイプの1最小単位を加算したものに設定されます(これはエラーにはなりません)。
ターゲット タイプがPERIOD(TIMESTAMP[(n)] WITH TIME ZONE)の場合、結果の開始要素の時間部分は現在のセッションのタイムゾーン、ソースDATE値から作成されたタイムスタンプ値、およびゼロの時間部分を使用して得られるUTC値に設定されます。結果の開始要素のタイムゾーンは、現在のセッションのタイムゾーン変位に設定されます。結果の終了要素は、結果の開始境界にターゲット タイプの1最小単位を加算したものに設定されます(これはエラーにはなりません)。