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 関数 (P ~ Z)

 

YEARS 関数 [日付と時刻]

2 つの日付を指定すると、2 つの日付の間の年数を整数で返します。この計算には DATEDIFF 関数を使用することをおすすめします。DATEDIFF 関数 [日付と時刻]を参照してください。

1 つの日付を指定すると、その年が返されます。この計算には DATEPART 関数を使用することをおすすめします。DATEPART 関数 [日付と時刻]を参照してください。

1 つの日付と整数を指定すると、指定した日付に、指定した整数の年数が加算されます。この計算には DATEADD 関数を使用することをおすすめします。DATEADD 関数 [日付と時刻]を参照してください。

構文 1
YEARS( [ datetime-expression, ] datetime-expression )
構文 2
YEARS( datetime-expression, integer-expression )
パラメータ
  • datetime-expression   日付と時刻。

  • integer-expression   datetime-expression に加算する年数。integer-expression が負の場合、日時の値から適切な年数が引かれます。integer-expression を指定する場合は、datetime-expression を datetime データ型として明示的にキャストしてください。

    データ型のキャストの詳細については、CAST 関数 [データ型変換]を参照してください。

戻り値

構文 1 は、INTEGER を返します。構文 2 は、TIMESTAMP を返します。

備考

YEARS の値を求めるには、2 つの日付の間に年の最初の日がいくつあるかを計算します。

標準と互換性
  • SQL/2003   ベンダ拡張。

次の文はどちらも -4 を返します。

SELECT YEARS( '1998-07-13 06:07:12',
              '1994-03-13 08:07:13' );
SELECT DATEDIFF( year,
   '1998-07-13 06:07:12',
   '1994-03-13 08:07:13' );

次の文は、1998 を返します。

SELECT YEARS( '1998-07-13 06:07:12' )
SELECT DATEPART( year, '1998-07-13 06:07:12' );

次の文は、指定した日付の 300 年後を返します。

SELECT YEARS( CAST( '1998-07-13 06:07:12' AS TIMESTAMP ), 300 )
SELECT DATEADD( year, 300, '1998-07-13 06:07:12' );