Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
MONTHS 関数は、TIMESTAMP を操作するか、2 つの TIMESTAMP 値の間の月数を返します。次の「備考」の項を参照してください。
MONTHS( timestamp-expression )
MONTHS( timestamp-expression, timestamp-expression )
MONTHS( timestamp-expression, integer-expression )
timestamp-expression TIMESTAMP データ型の日付と時刻。
integer-expression timestamp-expression に加算される整数の月数 (SMALLINT データ型)。integer-expression が負の場合、timestamp-expression から適切な月数が引かれます。integer-expression を指定する場合は、timestamp-expression を TIME、DATE または TIMESTAMP データ型として明示的にキャストしてください。timestamp-expression が TIME 値の場合、現在の月が使用されます。
データ型のキャストの詳細については、CAST 関数 [データ型変換]を参照してください。
構文 1 または構文 2 では INTEGER。
構文 3 では TIMESTAMP。
MONTHS 関数の結果は、その引数によって異なります。MONTHS 関数では、引数内の時間、分、および秒は無視されます。
構文 1 1 つの timestamp-expression を MONTHS 関数に渡すと、0000-02 から timestamp-expression までの月数を INTEGER として返します。
0000-02-29 は実際の日付を指すための値ではありません。MONTHS 関数で使用されるデフォルトの日付です。
構文 2 2 つの TIMESTAMP 値を MONTHS 関数に渡すと、その間の月数を整数で返します。
構文 3 TIMESTAMP 値と SMALLINT 値を MONTHS 関数に渡すと、整数の月数を timestamp-expression に加算した TIMESTAMP 結果を返します。
構文 2 の代わりに、DATEDIFF 関数を使用します。構文 3 の代わりに、DATEADD 関数を使用します。
MONTHS の値を求めるには、2 つの日付の間に月の最初の日がいくつあるかを計算します。
SQL/2008 ベンダー拡張。
次の文は、値 2 を返します。これは、2 番目の日付が、最初の日付の 2 か月後であることを示します。2 つ目の例 (DATEDIFF) の使用をおすすめします。
SELECT MONTHS( '1999-07-13 06:07:12', '1999-09-13 10:07:12' ); SELECT DATEDIFF( month, '1999-07-13 06:07:12', '1999-09-13 10:07:12' );
次の文は、値 23981 を返します。
SELECT MONTHS( '1998-07-13 06:07:12' );
次の文は、TIMESTAMP 値 1999-10-12 21:05:07.000 を返します。2 つ目の例 (DATEADD) の使用をおすすめします。
SELECT MONTHS( CAST( '1999-05-12 21:05:07' AS DATETIME ), 5); SELECT DATEADD( month, 5, '1999-05-12 21:05:07' );