すべてのプロダクト
Search
ドキュメントセンター

PolarDB:ROUND

最終更新日:Mar 28, 2026

ROUND は、フォーマットパターンで指定された単位に丸められた日付値を返します。

フォーマットパターンがない場合、動作は入力タイプによって異なります。

  • DATE または TIMESTAMP:最も近い日に丸めます。

  • INTERVAL:月と日を抽出し、1ヶ月を30日と仮定して合計日数を返します。

フォーマットパターン

フォーマットパターン丸め単位
CC, SCC世紀 — 最も近い世紀の1月1日に丸めます。年の下2桁が50以下の場合、切り捨てて現在の世紀の1月1日になります。51以上の場合、次の世紀の1月1日に切り上げます。
SYYY, YYYY, YEAR, SYEAR, YYY, YY, Y年 — 最も近い年の1月1日に丸めます。6月30日以前の場合、切り捨てて現在の年の1月1日になります。7月1日以降の場合、翌年の1月1日に切り上げます。
IYYY, IYY, IY, IISO年 — 最も近いISO年の開始日に丸めます。6月30日以前の場合、切り捨てます。7月1日以降の場合、切り上げます。
Q四半期 — 最も近い四半期の最初の日(1日)に丸めます。四半期の2番目の月の15日以前の場合、切り捨てます。16日以降の場合、切り上げます。
MONTH, MON, MM, RM月 — 最も近い月の最初の日(1日)に丸めます。15日以前の場合、切り捨てます。16日以降の場合、切り上げます。
WW週 — その年の1月1日と同じ曜日に丸めます。
IWISO週 — 最も近い月曜日に丸めます(ISO週の最初の日)。
W週 — その月の1日と同じ曜日に丸めます。
DDD, DD, J日 — 最も近い日に丸めます。
DAY, DY, D週の開始日 — 最も近い日曜日に丸めます。
HH, HH12, HH24時 — 最も近い時間に丸めます。
MI分 — 最も近い分に丸めます。
説明

各ISO年は、その年の最初の月曜日に始まります。最初のISO週は新年の少なくとも4日を含むため、ISO年は前年の12月に始まることがあります。

最も近い世紀への丸め

1950 は20世紀前半(下2桁 ≤ 50)に属するため、1901年に切り捨てられます。1951 は中間点(下2桁 > 50)を超えているため、2001年に切り上げられます。

SELECT TO_CHAR(ROUND(TO_DATE('1950','YYYY'),'CC'),'DD-MON-YYYY') "Century" FROM DUAL;

   Century
-------------
 01-JAN-1901
(1 row)

SELECT TO_CHAR(ROUND(TO_DATE('1951','YYYY'),'CC'),'DD-MON-YYYY') "Century" FROM DUAL;

   Century
-------------
 01-JAN-2001
(1 row)

最も近い年への丸め

6月30日以前の日付は、現在の年の1月1日に切り捨てられます。7月1日以降の日付は、翌年の1月1日に切り上げられます。

SELECT TO_CHAR(ROUND(TO_DATE('30-JUN-1999','DD-MON-YYYY'),'Y'),'DD-MON-YYYY') "Year" FROM DUAL;

    Year
-------------
 01-JAN-1999
(1 row)

SELECT TO_CHAR(ROUND(TO_DATE('01-JUL-1999','DD-MON-YYYY'),'Y'),'DD-MON-YYYY') "Year" FROM DUAL;

    Year
-------------
 01-JAN-2000
(1 row)

最も近いISO年への丸め

2004年のISO年は2003年12月29日に始まります。2005年のISO年は2005年1月3日に始まります。2004年6月30日はISO年2004の開始日に近く、2004年7月1日はISO年2005の開始日に近いです。

SELECT TO_CHAR(ROUND(TO_DATE('30-JUN-2004','DD-MON-YYYY'),'IYYY'),'DD-MON-YYYY') "ISO Year" FROM DUAL;

  ISO Year
-------------
 29-DEC-2003
(1 row)

SELECT TO_CHAR(ROUND(TO_DATE('01-JUL-2004','DD-MON-YYYY'),'IYYY'),'DD-MON-YYYY') "ISO Year" FROM DUAL;

  ISO Year
-------------
 03-JAN-2005
(1 row)

最も近い 0.25 に丸める

2月は第1四半期の2番目の月です。2月15日以前の日付は1月1日に切り捨てられ、2月16日以降の日付は4月1日に切り上げられます。

SELECT ROUND(TO_DATE('15-FEB-07','DD-MON-YY'),'Q') "Quarter" FROM DUAL;

      Quarter
--------------------
 01-JAN-07 00:00:00
(1 row)

SELECT ROUND(TO_DATE('16-FEB-07','DD-MON-YY'),'Q') "Quarter" FROM DUAL;

      Quarter
--------------------
 01-APR-07 00:00:00
(1 row)

最も近い月への丸め

15日以前の日付は、現在の月の1日に丸められます。16日以降の日付は、翌月の1日に丸められます。

SELECT ROUND(TO_DATE('15-DEC-07','DD-MON-YY'),'MONTH') "Month" FROM DUAL;

       Month
--------------------
 01-DEC-07 00:00:00
(1 row)

SELECT ROUND(TO_DATE('16-DEC-07','DD-MON-YY'),'MONTH') "Month" FROM DUAL;

       Month
--------------------
 01-JAN-08 00:00:00
(1 row)

最も近い週 (WW) への丸め

WW は、指定された年の1月1日と同じ曜日に丸めます。2007年1月1日は月曜日であったため、すべての結果は月曜日です。1月18日は1月15日の月曜日に近く、1月19日は1月22日の月曜日に近いです。

SELECT ROUND(TO_DATE('18-JAN-07','DD-MON-YY'),'WW') "Week" FROM DUAL;

        Week
--------------------
 15-JAN-07 00:00:00
(1 row)

SELECT ROUND(TO_DATE('19-JAN-07','DD-MON-YY'),'WW') "Week" FROM DUAL;

        Week
--------------------
 22-JAN-07 00:00:00
(1 row)

最も近いISO週 (IW) への丸め

IW は最も近い月曜日に丸めます。2004年1月1日は2003年12月29日の月曜日に最も近く、2004年1月2日は2004年1月5日の月曜日に最も近いです。

SELECT ROUND(TO_DATE('01-JAN-04','DD-MON-YY'),'IW') "ISO Week" FROM DUAL;

      ISO Week
--------------------
 29-DEC-03 00:00:00
(1 row)

SELECT ROUND(TO_DATE('02-JAN-04','DD-MON-YY'),'IW') "ISO Week" FROM DUAL;

      ISO Week
--------------------
 05-JAN-04 00:00:00
(1 row)

最も近い週 (W) への丸め

W は、その月の1日と同じ曜日に丸めます。2007年3月1日は木曜日であったため、すべての結果は木曜日です。3月5日は3月8日の木曜日に近く、3月4日は3月1日の木曜日に近いです。

SELECT ROUND(TO_DATE('05-MAR-07','DD-MON-YY'),'W') "Week" FROM DUAL;

        Week
--------------------
 08-MAR-07 00:00:00
(1 row)

SELECT ROUND(TO_DATE('04-MAR-07','DD-MON-YY'),'W') "Week" FROM DUAL;

        Week
--------------------
 01-MAR-07 00:00:00
(1 row)

最も近い日への丸め

正午(12:00:00 PM)以前の時刻は、現在の日付に切り捨てられます。正午以降の時刻は、翌日に切り上げられます。

SELECT ROUND(TO_DATE('04-AUG-07 11:59:59 AM','DD-MON-YY HH:MI:SS AM'),'J') "Day" FROM DUAL;

        Day
--------------------
 04-AUG-07 00:00:00
(1 row)

SELECT ROUND(TO_DATE('04-AUG-07 12:00:00 PM','DD-MON-YY HH:MI:SS AM'),'J') "Day" FROM DUAL;

        Day
--------------------
 05-AUG-07 00:00:00
(1 row)

最も近い日曜日への丸め

DAY は最も近い日曜日に丸めます。2007年8月8日は水曜日であったため、8月5日の日曜日に近いです。2007年8月9日は木曜日であったため、8月12日の日曜日に近いです。

SELECT ROUND(TO_DATE('08-AUG-07','DD-MON-YY'),'DAY') "Day of Week" FROM DUAL;

    Day of Week
--------------------
 05-AUG-07 00:00:00
(1 row)

SELECT ROUND(TO_DATE('09-AUG-07','DD-MON-YY'),'DAY') "Day of Week" FROM DUAL;

    Day of Week
--------------------
 12-AUG-07 00:00:00
(1 row)

最も近い時間への丸め

29分以下の時刻は、現在の時間に切り捨てられます。30分以上の時刻は、次の時間に切り上げられます。

SELECT TO_CHAR(ROUND(TO_DATE('09-AUG-07 08:29','DD-MON-YY HH:MI'),'HH'),'DD-MON-YY HH24:MI:SS') "Hour" FROM DUAL;

        Hour
--------------------
 09-AUG-07 08:00:00
(1 row)

SELECT TO_CHAR(ROUND(TO_DATE('09-AUG-07 08:30','DD-MON-YY HH:MI'),'HH'),'DD-MON-YY HH24:MI:SS') "Hour" FROM DUAL;

        Hour
--------------------
 09-AUG-07 09:00:00
(1 row)

最も近い分への丸め

0~29秒は、現在の分に切り捨てられます。30~59秒は、次の分に切り上げられます。

SELECT TO_CHAR(ROUND(TO_DATE('09-AUG-07 08:30:29','DD-MON-YY HH:MI:SS'),'MI'),'DD-MON-YY HH24:MI:SS') "Minute" FROM DUAL;

       Minute
--------------------
 09-AUG-07 08:30:00
(1 row)

SELECT TO_CHAR(ROUND(TO_DATE('09-AUG-07 08:30:30','DD-MON-YY HH:MI:SS'),'MI'),'DD-MON-YY HH24:MI:SS') "Minute" FROM DUAL;

       Minute
--------------------
 09-AUG-07 08:31:00
(1 row)

INTERVAL値の丸め

フォーマットパターンがない場合、ROUNDINTERVAL 値を、1ヶ月を30日と仮定して合計日数に変換します。

SELECT ROUND(TIMESTAMP '2020-10-10 10:22:22' - TIMESTAMP '2020-10-05 12:22:22');
 round
-------
     4
(1 row)

SELECT ROUND(INTERVAL '1 year 13 months 3 days');
 round
-------
   753
(1 row)

関連項目

  • TRUNC — 日付値をフォーマットパターンで指定された単位に切り捨てます。ROUND と同じフォーマットパターンを使用します。