SQL辞典

【SQL日付関数】MONTHS_BETWEEN – 日付の差を月単位で取得する (Oracle)

投稿日:2009年9月15日 更新日:

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

SQLコマンド辞典に戻る

広告

広告

-SQL辞典


comment

関連記事

no image

【SQL日付関数】DAY – 日付値から日の値のみ取得する(SQL Server)

SQL ServerではDAY関数を使用して、日付値から日のみ取得する事ができます。 文法: DAY(d) dに指定した日付値から日の値のみ取得する。 使用例:birthday列の日付から日の値のみ取 …

no image

【SQL算術関数】CEIL / CEILING – 最も小さい整数を返す(Oracle、SQL Server)

引数に指定した値に対して、それ以上で最も小さい整数値を求めるにはOracleの場合はCEIL関数、SQL Serverの場合はCEILING関数を使います。CEILINGは天井という意味があります。引 …

no image

【SQL文字列変換】UPPER – 大文字に変換(Oracle、SQL Server)

OracleやSQL Serverで文字列を大文字に変換するには、UPPER関数を使います。使い方は簡単です。 構文: UPPER(word) wordを大文字に変換する 使用例:社員名を大文字に変換 …

no image

【SQL文字列関数】CHARINDEX – 文字列の位置を求める(SQL Server)

SQL ServerのCHARINDEX関数は文字列の位置を返します。例えば、「Windows」という文字列からdの位置を求めると4となります。sの位置は7となります。大文字小文字の区別はありません。 …

no image

【SQL変換関数】DECODE – 値を変換する(Oracle)

OracleではDECODE関数を使って、値を変換する事ができます。使い方はCASE命令と似ています。CASE命令で書き換える事も可能です。 文法: DECODE( x, target, new_va …

広告

転職