2 つの日付の間の週数を返します。
WEEKS( [ datetime-expression, ] datetime-expression )
WEEKS( datetime-expression, integer-expression )
datetime-expression 日付と時刻。
integer-expression datetime-expression に加算する週数。integer-expression が負の場合、日時の値から適切な週数が引かれます。integer-expression を指定する場合は、datetime-expression を DATETIME として明示的にキャストしてください。
構文 1 は、INTEGER を返します。
構文 2 は、TIMESTAMP を返します。
1 つの日付を指定すると (構文 1)、WEEKS 関数は、0000-02-29 からの週数を返します。
2 つの日付を指定すると (構文 1)、WEEKS 関数は、2 つの日付の間の週数を返します。WEEKS 関数は DATEDIFF 関数に似ていますが、2 つの日付間の週数を計算する場合に使用される方法はこれと同じではなく、返される結果が異なる場合があります。WEEKS の戻り値は、2 つの日付間の日数を 7 で割った値を丸めて求められますが、DATEDIFF では週の境目の数が使用されます。このため、戻り値が異なるケースがあり得ます。たとえば、最初の日付が金曜日で次の日付が翌月曜日の場合、WEEKS 関数は週数として 0 を返し、DATEDIFF 関数は 1 を返します。どちらかが優れているという問題ではないので、WEEKS と DATEDIFF との動作の違いをふまえて使用してください。
DATEDIFF 関数の詳細については、DATEDIFF 関数 [日付と時刻]を参照してください。
1 つの日付と整数を指定すると (構文 2)、WEEKS 関数は、指定された日付に、指定された整数の週数を加算します。この動作は DATEADD 関数と似ています。
DATEADD 関数の詳細については、DATEADD 関数 [日付と時刻]を参照してください。
データ型のキャストの詳細については、CAST 関数 [データ型変換]を参照してください。
SQL/2003 ベンダ拡張。
次の文は、値 8 を返します。これは、2008-09-13 10:07:12 が、2008-07-13 06:07:12 の 8 週間後であることを示します。
SELECT WEEKS( '2008-07-13 06:07:12', '2008-09-13 10:07:12' ); |
次の文は、値 104792 を返します。これは、指定された日付が、0000-02-29 の 104792 週間後であることを示します。
SELECT WEEKS( '2008-07-13 06:07:12' ); |
次の文は、タイムスタンプ 2008-06-16 21:05:07.0 を返します。これは、返された日時が 2008-05-12 21:05:07 の 5 週間後であることを示します。
SELECT WEEKS( CAST( '2008-05-12 21:05:07' AS TIMESTAMP ), 5); |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |