Oracle SQL 関数 : ROUND(日付) : 日付の丸め処理

 dateRet := ROUND( dateSrc [ , dateFormat ] );

 ROUNDは日付データdateSrcをdateFormatに従って丸めた日付を返します。
  dateFormatが省略されると最も近い日に丸められます。
dateFormat 丸め処理
YYYY,YEAR 年(7月1日で切り上げ)
Q 四半期
MONTH,MM 月(16日で切り上げ)
DD
DAY 週の開始日
HH,HH12,HH24
MI
SQL> SELECT ROUND(TO_DATE('2002/06/30'),'YEAR') YEAR0630,
  2         ROUND(TO_DATE('2002/07/01'),'YEAR') YEAR0701,
  3         ROUND(TO_DATE('2002/06/30'),'Q') Q,
  4         ROUND(TO_DATE('2002/06/15'),'MM')   MM0615  ,
  5         ROUND(TO_DATE('2002/06/16'),'MM') MM0616,
  6         ROUND(TO_DATE('2002/06/15 23:50:00','YYYY/MM/DD HH24:MI:SS'),'DD') DD,
  7         TO_CHAR(ROUND(TO_DATE('2002/06/15 23:29:00','YYYY/MM/DD HH24:MI:SS'),'HH24'),
  8                 'YYYY/MM/DD HH24:MI:SS') HH24
  9  FROM DUAL;

YEAR0630 YEAR0701 Q        MM0615   MM0616   DD       HH24
-------- -------- -------- -------- -------- -------- -------------------
02-01-01 03-01-01 02-07-01 02-06-01 02-07-01 02-06-16 2002/06/15 23:00:00