Date型を指定した単位で四捨五入するには、ROUND関数を使用します。
サンプル
例)Date型日付を月単位で四捨五入するサンプル
1 2 3 4 5 6 7 8 9 10 11 |
SELECT ROUND(TO_DATE('2017/11/15'), 'mm') FROM dual; ⇒ 2017/11/01 SELECT ROUND(TO_DATE('2017/11/16'), 'mm') FROM dual; ⇒ 2017/12/01 SELECT ROUND(TO_DATE('2017/10/15'), 'mm') FROM dual; ⇒ 2017/10/01 SELECT ROUND(TO_DATE('2017/10/16'), 'mm') FROM dual; ⇒ 2017/11/01 |
フォーマットは以下のようなものが指定できます。
mm | 月 |
---|---|
dd | 日(デフォルト) |
hh | 時 |
mi | 分 |
ss | 秒 |
解説
- フォーマットを省略すると、日単位で四捨五入されます。
- フォーマットに「yyyy/mm」等、単一の単位でないフォーマットを指定すると以下のエラーが発生します。
「ORA01898:精度指定子が多すぎます」 - 指定した単位で切捨てたい場合は、TRUNCを使用します。
⇒Date型を指定した単位で切り捨てる(trunc)