この関数の動作は、指定内容によって異なります。
1 つの日付を指定すると、0000-02 からの月数を返します。
0000-02 は実際の日付を指すための値ではありません。日付アルゴリズムで使用される日付です。
2 つのタイムスタンプを指定すると、2 つの日付の間の月数を整数で返します。代わりに、DATEDIFF 関数を使用します。
1 つの日付と整数を指定すると、指定した日付に、指定した整数の分数が加算されます。代わりに、DATEADD 関数を使用します。
MONTHS( [ datetime-expression, ] datetime-expression )
MONTHS( datetime-expression, integer-expression )
datetime-expression 日付と時刻。
integer-expression datetime-expression に加算する月数。integer-expression が負の場合、日時の値から適切な月数が引かれます。integer-expression を指定する場合は、datetime-expression を datetime データ型として明示的にキャストしてください。
データ型のキャストの詳細については、CAST 関数 [データ型変換]を参照してください。
INT
TIMESTAMP
MONTHS の値を求めるには、2 つの日付の間に月の最初の日がいくつあるかを計算します。
SQL/2003 ベンダ拡張。
次の文は、値 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' ); |
次の文は、タイムスタンプ 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' ); |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |