Oracleで2つの日付の差を月単位で取得するには、MONTHS_BETWEEN関数を取得する。注意点はMONTH_BETWEENではなく、MONTHS_BETWEENというようにMONTHが複数形であること。また、使用例の3列目の例のように月だけをみると2か月の差ですが、日付をみると、25‐5で20日間、つまり、20÷31=0.64516129月分の差がありますので、09-05-25と09-03-05の月の差は2.64516129ヶ月分の差がある事になります。
文法:
MONTHS_BETWEEN(date1, date2)
date1からdate2を引く形で月の差を求める。
使用例:日付の差を月単位で求める。
SELECT date1, date2, MONTHS_BETWEEN(date1, date2) FROM tbTestTable;
date1 date2 MONTHS_BETWEEN(date1, date2)
———————————————————————————-
09-09-03 09-04-03 5
09-05-25 09-07-25 -2
09-05-25 09-03-05 2.64516129