Problem:
Microsoft wypuszcza aktualizacje w drugi wtorek miesiąca. Aktualizacje są instalowane na serwerach w pierwszym, drugim, trzecim i kolejnych tygodniach po publikacji. Jak przeliczyć datę instalacji na numer tygodnia?
Oto propozycja, która przynajmniej częściowo rozwiązuje ten problem:
1 2 |
DECLARE @SecondTuesday AS DATETIME = '2015-06-10' DECLARE @InstallDate AS DATETIME = '2015-06-19' |
1 |
SELECT |
1 |
CASE |
1 |
WHEN @InstallDate BETWEEN @SecondTuesday AND DATEADD(d,7,@SecondTuesday) THEN 1 |
1 |
WHEN @InstallDate BETWEEN DATEADD(d,7,@SecondTuesday) AND DATEADD(d,14,@SecondTuesday) THEN 2 |
1 |
WHEN @InstallDate BETWEEN DATEADD(d,14,@SecondTuesday) AND DATEADD(d,21,@SecondTuesday) THEN 3 |
1 |
WHEN @InstallDate BETWEEN DATEADD(d,21,@SecondTuesday) AND DATEADD(d,29,@SecondTuesday) THEN 4 |
1 |
ELSE 5 |
1 |
END AS WeekNumber |