Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
WEEKS 関数は、TIMESTAMP を操作するか、2 つの TIMESTAMP 値の間の週数を返します。次の「備考」の項を参照してください。
WEEKS( timestamp-expression )
WEEKS( timestamp-expression, timestamp-expression )
WEEKS( timestamp-expression, integer-expression )
timestamp-expression TIMESTAMP データ型の値の日付と時刻。
integer-expression timestamp-expression に加算される週数。integer-expression が負の場合、timestamp-expression. から適切な週数が引かれます。integer-expression を指定する場合は、timestamp-expression を DATE または TIMESTAMP として明示的にキャストしてください。
構文 1 または構文 2 では INTEGER。
構文 3 では TIMESTAMP。
1 つの日付を指定すると (構文 1)、WEEKS 関数は、0000-02-29 からの週数を返します。
2 つの日付を指定すると (構文 2)、WEEKS 関数は、2 つの日付の間の週数を返します。WEEKS 関数は DATEDIFF 関数に似ていますが、2 つの日付間の週数を計算する場合に使用される方法はこれと同じではなく、返される結果が異なる場合があります。WEEKS の戻り値は、2 つの日付の間の日数を 7 で割り、余りを切り捨てて求められます。ただし、DATEDIFF では週の境目の数が使用されます。このため、2 つの関数から返される値が異なる場合があります。たとえば、最初の日付が金曜日で次の日付が翌月曜日の場合、WEEKS 関数は週数として 0 を返しますが、DATEDIFF 関数は 1 を返します。どちらかが優れているという問題ではないので、WEEKS と DATEDIFF との動作の違いをふまえて使用してください。
DATEDIFF 関数の詳細については、DATEDIFF 関数 [日付と時刻]を参照してください。
1 つの日付と整数を指定すると (構文 3)、WEEKS 関数は、timestamp-expression に、指定された整数の週数を加算します。構文 3 では、timestamp-expression を TIME、DATE、または TIMESTAMP データ型として明示的にキャストしてください。timestamp-expression が TIME 値の場合、現在の日付が使用されます。構文 3 の代わりに、DATEADD 関数を使用します。
DATEADD 関数の詳細については、DATEADD 関数 [日付と時刻]を参照してください。
データ型のキャストの詳細については、CAST 関数 [データ型変換]を参照してください。
SQL/2008 ベンダー拡張。
次の文は、値 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' );
次の文は、TIMESTAMP 値 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);