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 関数 (A ~ D)

 

DAYS 関数 [日付と時刻]

日付を評価する関数。詳細については、この関数の使用法を参照してください。

構文 1:整数
DAYS( [ datetime-expression, ] datetime-expression )
構文 2:タイムスタンプ
DAYS( datetime-expression, integer-expression )
パラメータ
  • datetime-expression   日付と時刻。

  • integer-expression   datetime-expression に加算する日数。integer-expression が負の場合、タイムスタンプから適切な日数が引かれます。整数式を指定する場合は、datetime-expression を日付またはタイムスタンプとして明示的にキャストしてください。

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

戻り値

datetime-expression を 2 つ指定した場合は INT。

2 番目の引数が整数の場合は TIMESTAMP。

備考

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

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

    注意

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

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

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

この関数では、時間、分、秒が無視されます。

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

次の文は、整数 729889 を返します。

SELECT DAYS( '1998-07-13 06:07:12' );

次の文は、整数値 -366 を返します。このことは、2 番目の日付が最初の日付より 366 日前の日付であることを示します。2 つ目の例 (DATEDIFF) の使用をおすすめします。

SELECT DAYS( '1998-07-13 06:07:12',
             '1997-07-12 10:07:12' );
SELECT DATEDIFF( day,
   '1998-07-13 06:07:12',
   '1997-07-12 10:07:12' );

次の文は、タイムスタンプ 1999-07-14 00:00:00.000 を返します。2 つ目の例 (DATEADD) の使用をおすすめします。

SELECT DAYS( CAST('1998-07-13' AS DATE ), 366 );
SELECT DATEADD( day, 366, '1998-07-13' );