Oracle Database 日付の差分を月単位で取得する

Oracle Database 日付の差分を月単位で取得する

Oracle Databaseで、日付の差分を月単位で取得する手順を記述してます。「MONTHS_BETWEEN」で可能です。ここでは、実際に実行した結果を画像で掲載してます。

環境

  • OS windows11 home
  • Oracle Database 21c Express Edition
  • SQL Developer 21.2.1.204

手順

日付の差分を月単位で取得するには「MONTHS_BETWEEN」を使用します。

MONTHS_BETWEEN(日付, 日付)

実際に、差分を取得してみます。SYSDATEは、DBサーバーがあるOSの現在の日付となります。
※「DUAL」テーブルはダミーとして使用できるテーブルです。

SELECT 
MONTHS_BETWEEN
(TO_DATE('2022-02-01','YYYY-MM-DD'),TO_DATE('2022-01-01','YYYY-MM-DD') ),
MONTHS_BETWEEN
(TO_DATE('2022-02-02','YYYY-MM-DD'),TO_DATE('2022-01-01','YYYY-MM-DD') ),
MONTHS_BETWEEN
(TO_DATE('2022-01-01','YYYY-MM-DD'),TO_DATE('2022-02-01','YYYY-MM-DD') )
FROM DUAL;

実行結果

取得されていることが確認できます。

小数点切り捨て

小数点を切り捨てて使用する場合は、「TRUNC」を使用します。

SELECT 
TRUNC(
MONTHS_BETWEEN
(TO_DATE('2022-02-02','YYYY-MM-DD'),TO_DATE('2022-01-01','YYYY-MM-DD') )
)
FROM DUAL;

実行結果