結果値には、次に示すルールが適用されます。
- 開始境界または終了境界がNULLの場合や、両方の境界がNULLの場合、結果はNULLになります。
- 開始境界および終了境界がNULLの場合や、開始境界がNULLで終了境界がUNTIL_CHANGEDの場合、期間のタイプはPERIOD(TIMESTAMP(0))がデフォルトになります。
- 開始境界のみを指定する場合、結果の終了境界は開始境界に結果の構成要素のタイプの1最小単位を加算したものになります。結果の終了境界が、PERIOD(DATE)またはPERIOD(TIMESTAMP(n) [WITH TIME ZONE])の結果のデータ型に許容された、最大のDATE値またはTIMESTAMP値以上になる場合は、エラーが報告されます。
- 終了境界が値式として指定されていて、開始境界と終了境界の精度が異なる場合、精度の高い方が結果の精度になります。それ以外の場合、結果の精度は開始境界の精度になります。
- UNTIL_CHANGEDにより、結果の終了構成要素には、開始境界のデータ型に応じてDATEまたはTIMESTAMPの最大値が設定されます。開始境界のデータ型がTIMESTAMP(n) WITH TIME ZONEの場合、結果の終了構成要素は、UTCでの(つまり、終了境界のタイムゾーン変位がINTERVAL '00:00' HOUR TO MINUTEになる)最大のTIMESTAMP(n) WITH TIME ZONE値に設定されます。
- 開始境界または終了境界、または開始境界および終了境界にタイムゾーン値が含まれる場合で、終了境界がUNTIL_CHANGEDではない場合、結果のデータ型はWITH TIME ZONEになります。境界のどちらかにのみタイムゾーン値が含まれている場合、もう一方のタイムゾーンのフィールドには現在のセッションのタイムゾーン変位が設定されます。どちらの境界にもタイムゾーン値が含まれている場合は、それに対応するタイムゾーン値が結果の境界に含まれます。
- 結果のPeriodデータ型は、前述の定義のように精度およびタイムゾーンを除外した開始境界の日時データ型と同じ構成要素のタイプを持ちます。
- TIMEおよびTIMESTAMP構成要素のタイプを持つPeriodデータ型のうるう秒は、次のように処理されます。開始境界または終了境界の値にうるう秒が含まれている場合、秒部分が結果の精度にまで精度が切り詰められた59.999999に調整されます。この処理中に開始境界と終了境界が同じになると、エラーが報告されます。