秒単位に丸め処理、時刻で丸める、日にちで丸める、月で・・・
⇒ 数値の丸め処理
ROUND ( datetime [, format] )
return [ date ]
丸め処理をする時間の要素(一部)
format | 内容 | 境界 |
CC | 西暦 | xx51年 1月 |
YYYY | 年 | 7月1日 0時 |
IYYY | ISO 年 |
Q | 四半期 | 16日 00:00:00 |
MM | 月 |
WW | その年の最初の曜日 | |
IW | ISO 年での最初の曜日 | |
W | その月の最初の曜日 | |
DAY | 週 | 水曜 12:00 |
DD | 日 (デフォルト) | 12:00 |
HH | 時 | 30 |
MI | 分 | 30 |
SS | DATE 型精度なので秒単位は無い | |
ROUND(日時) 関数の内容
丸め処理を行なう日時式 datetime を 時間の要素 format (省略時 DD) で丸めた値を戻す。
注意
ROUND で使用される datetime の型は DATE 型であるため、TIMESTAMP 型を使用すると DATE 型に 暗黙変換 される。秒単位での丸め関数は用意されていない。(Oracle 10g R2 時点)
週の初めの日の定義
NLS_TERITORY = Japan における週の初めは日曜日に定義されている。
ROUND(日時) 使用例
SQL> select dt, fmt, ROUND(dt, fmt),
2 to_char(dt, 'dy') d1, to_char(ROUND(dt, fmt), 'dy') d2
3 from round_date_sample;
DT FMT ROUND(DT,FMT) D1 D2
------------------- -------- ------------------- --- ---
2050-01-01 00:00:00 CC 2001-01-01 00:00:00
2051-01-01 00:00:00 CC 2101-01-01 00:00:00 略
2007-02-15 00:00:00 MM 2007-02-01 00:00:00
2007-02-16 00:00:00 MM 2007-03-01 00:00:00
2007-01-03 11:59:59 DAY 2006-12-31 00:00:00 水 日
2007-01-03 12:00:00 DAY 2007-01-07 00:00:00 水 日
2007-01-03 11:59:59 DD 2007-01-03 00:00:00
2007-01-03 12:00:00 DD 2007-01-04 00:00:00
2007-12-31 23:30:00 HH 2008-01-01 00:00:00 略
2007-12-31 23:30:30 MI 2007-12-31 23:31:00
関連事項
SQL 関数 - ROUND 関連