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文字列関数】INSTR – 文字列を検索して文字列の位置を返す(Oracle)

Oracleでは、INSTR関数を使用して文字列の位置を求める事ができます。 文法: INSTR(word, target [, N [, M] ] ) wordで指定した文字列からtargetを検索 …

no image

【SQL日付関数】DATENAME – 日付要素を文字として取得する(SQL Server)

SQL Serverでは日付値から日付要素を文字列をして取得する為にDATENAME関数を使う事ができます。 文法: DATENAME(element, value) valueに指定した日付値の日付 …

no image

【SQL日付関数】ADD_MONTHS – 日付に月を加算する (Oracle)

Oracleでは、ADD_MONTHSを使って日付に月を加算する事ができます。注意点として、2009/09/30のように月末の日付に月を加算すると、その月の月末を計算します。例えば、2009/09/3 …

no image

【SQL文字列関数】CHAR、CHR – ASCIIコードを文字に変換する(SQL Server、Oracle)

ASCIIコードを文字に変換するにはCHAR(SQL Serverの場合)もしくはCHR(Oracleの場合)を使用します。 使用例:ASCIIコードを文字に変換する SELECT ascii_cod …

no image

【SQL日付関数】DATEADD – 日付(日時)を加算する(SQL Server)

SQL ServerではDATEADD関数を使って、日付型の値に日時を加算する事ができます。 構文: DATEADD(element, value, target) targetにvalueで指定した …

広告

転職