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:
DECLARE @SecondTuesday AS DATETIME = '2015-06-10' DECLARE @InstallDate AS DATETIME = '2015-06-19'
SELECT
CASE
WHEN @InstallDate BETWEEN @SecondTuesday AND DATEADD(d,7,@SecondTuesday) THEN 1
WHEN @InstallDate BETWEEN DATEADD(d,7,@SecondTuesday) AND DATEADD(d,14,@SecondTuesday) THEN 2
WHEN @InstallDate BETWEEN DATEADD(d,14,@SecondTuesday) AND DATEADD(d,21,@SecondTuesday) THEN 3
WHEN @InstallDate BETWEEN DATEADD(d,21,@SecondTuesday) AND DATEADD(d,29,@SecondTuesday) THEN 4
ELSE 5
END AS WeekNumber