# CALC_MONTHS関数

関数

    CALC_MONTHS{[DATE],[MONTH]}

DATEで指定した日付にMONTHで指定した値で日付演算を行った値を返します。

DATEが指定されていない場合は、マッピングされた文字列で日付演算を行った値を返します。マッピングされた文字列が日付形式でない場合は、変換時にエラーとなります。

返却される値には、時間（HH:MI:SS）も含まれます。

パラメータ

DATE

日付を指定します（省略可）。

日付形式で指定されていない場合は、変換時にエラーとなります。

マッピングされた文字列が空文字の場合は、今日の日付として扱います。

"$DSTR"を使用して指定もできます。

MONTH

演算する月数を指定します（省略可）。

数字以外を指定した場合は、変換時にエラーとなります。

小数を指定した場合、小数点以下を切り捨てた値として扱います。

指定を省略した場合や、空文字またはNULLを指定した場合は、"0"として扱います。

"$VAR"、"$INUM"、"$INAME"、"$DNUM"、"$DSTR"、"$MINUM"を使用して指定もできます。

= 備考 =

- DATEに月末の日付を指定したとき、日付演算後は常に月末の日付を返します。

- DATEに月末以外の日付を指定し、日付演算後の日付が月末以降の日付となった場合は、月末の日付を返します。

  （例）DATE: 2018/3/30、MONTH: -1 ⇒ 2018/2/28が返されます。

使用例

DATE、MONTHと結果の例を以下の表に示します。

返却される値には、時間（HH:MI:SS）も含まれます。

表A.1 CALC_MONTHS関数の変換例

DATE | MONTH | 結果
--- | --- | ---
2011/6/30 | -3 | 2011/3/31
2011/5/31 | -3 | 2011/2/28
2008/2/29 | -12 | 2007/2/28
2011/3/30 | -1.6 | 2011/2/28
2011/6/30 | 1.2 | 2011/7/31
2008/2/29 | 1.8 | 2008/3/31
2011/6/30 | 0 | 2011/6/30