ROUND (間隔)
目的
ROUND(interval)
は、2番目の引数の書式モデルfmt
で指定された単位に切り上げられた間隔を返します。
INTERVAL YEAR TO MONTH
の場合、fmt
では年のみが指定できます。デフォルトのfmt
は年です。
INTERVAL DAY TO SECOND
の場合、fmt
では日、時および分を指定できます。デフォルトのfmt
は日です。fmt
は秒をサポートしていない点に注意してください。
ROUND(interval)
は、次に示すように、fmt
の次の部分の中間値で切り上げます。
-
fmt
が年の場合、ROUND(interval)
は月の中間値である6で切り上げられます。 -
fmt
が日の場合、ROUND(interval)
は時の中間値である12で切り上げられます。 -
fmt
が時の場合、ROUND(interval)
は分の中間値である30で切り上げられます。 -
fmt
が分の場合、ROUND(interval)
は秒の中間値である30で切り上げられます。
ROUND(interval)
にはオーバーフローが発生する可能性があるため、年と日の結果精度は入力精度の年と日にそれぞれ1を加えたものになります。すでに間隔が年と日の最大精度になっている場合、この文はコンパイルされますが実行時にエラーになります。
関連項目:
fmt
で使用できる書式モデルについては、「CEIL、FLOOR、ROUNDおよびTRUNC日付ファンクション」を参照してください。
例
SELECT ROUND(INTERVAL '+123-06' YEAR(3) TO MONTH) AS year_round; YEAR_ROUND ---------- +124-00
SELECT ROUND(INTERVAL '+99-11' YEAR(2) TO MONTH, 'YEAR') AS year_round; YEAR_ROUND ---------- +100-00
SELECT ROUND(INTERVAL '-999999999-11' YEAR(9) TO MONTH, 'YEAR')AS year_round; ORA-01873: the leading precision of the interval is too small
SELECT ROUND(INTERVAL '+4 12:42:10.222' DAY(2) TO SECOND(3), 'DD') AS day_round; DAY_ROUND ------------------- +05 00:00:00.000000