てぃぐれのプログラマwiki

ワクワクに従う

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は使わない