DATEDIFF
は、2つの日付の差を計算します。 14日で割って残りの部分を取る(%
)。
残量が7未満の場合は、開始日に近い。
開始日が1週間離れていることが分かっているので、開始日を1つだけ確認する必要があります。
DECLARE @VarStartGroup1 date = '2016-01-15';
DECLARE @VarStartGroup2 date = '2016-01-22';
DECLARE @VarCurrentDate date = '2016-04-04';
SELECT
DATEDIFF(day, @VarStartGroup1, @VarCurrentDate) AS TotalDays1,
DATEDIFF(day, @VarStartGroup2, @VarCurrentDate) AS TotalDays2,
DATEDIFF(day, @VarStartGroup1, @VarCurrentDate) % 14 AS DayNumberInGroup1,
DATEDIFF(day, @VarStartGroup2, @VarCurrentDate) % 14 AS DayNumberInGroup2,
CASE WHEN DATEDIFF(day, @VarStartGroup1, @VarCurrentDate) % 14 < 7
THEN 'Group1' ELSE 'Group2' END AS Result
;
結果
+------------+------------+-------------------+-------------------+--------+
| TotalDays1 | TotalDays2 | DayNumberInGroup1 | DayNumberInGroup2 | Result |
+------------+------------+-------------------+-------------------+--------+
| 80 | 73 | 10 | 3 | Group2 |
+------------+------------+-------------------+-------------------+--------+
私は何が起こっているかを理解するために、結果で中間計算が含まれています。
ご質問を詳しくご記入ください。現在の日付は4月で、隔週の私の定義ではどちらの期間も1月または2月に終了していません。 –