date型の扱い方雑にまとめ【ORACLE】
MONTHS_BETWEEN 何ヶ月の差があるかの計算
select MONTHS_BETWEEN('11-DEC-20','11-OCT-20') from dual;
結果: 2
12月- 10月 = 2
ちなみに
select MONTHS_BETWEEN('11-DEC-20','10-OCT-20') from dual;
2ヶ月と1日の場合
結果:
2.03225806451612903225806451612903225806 |
になった。1ヶ月を1にしたときの1日分が計算されているのだろう。
DATE型の算術演算
日時 + 数値 = 日時型
日時 - 数値 = 日時型
日時 - 日時 = 数値型 日数が戻される
※下記の演算はできない
日時 + 日時
日時 * 数値
DATA型の表記方法変えるにはto_char
SELECT
TO_CHAR(NEXT_DAY(LAST_DAY(hire_date),6),'YYYYMMDD')
from employees;
※変換にto_dateは使わない