Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL リファレンス » SQL の使用 » SQL 関数 » SQL 関数 (E ~ O)

 

MONTHS 関数 [日付と時刻]

この関数の動作は、指定内容によって異なります。

  • 1 つの日付を指定すると、0000-02 からの月数を返します。

    注意

    0000-02 は実際の日付を指すための値ではありません。日付アルゴリズムで使用される日付です。

  • 2 つのタイムスタンプを指定すると、2 つの日付の間の月数を整数で返します。代わりに、DATEDIFF 関数を使用します。

  • 1 つの日付と整数を指定すると、指定した日付に、指定した整数の分数が加算されます。代わりに、DATEADD 関数を使用します。

構文 1:整数
MONTHS( [ datetime-expression, ] datetime-expression )
構文 2:タイムスタンプ
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' );