Вы можете попробовать это ниже logi c, чтобы найти дату начала и окончания недели по номеру недели и года. Это будет рассматривать понедельник как недельный стартер.
(логика c взята из онлайн-поиска)
DECLARE @year INT, @isoweek INT
SET @year = 2020
SET @isoweek = 14
SELECT
DATEADD(
d,
(@isoweek - 1) * 7,
CASE (DATEPART(dw, CAST(@year AS CHAR(4)) + '-01-04') + @@DATEFIRST - 1) % 7
WHEN 1 THEN CAST(@year AS CHAR(4)) + '-01-04'
WHEN 2 THEN DATEADD(d, -1, CAST(@year AS CHAR(4)) + '-01-04')
WHEN 3 THEN DATEADD(d, -2, CAST(@year AS CHAR(4)) + '-01-04')
WHEN 4 THEN DATEADD(d, -3, CAST(@year AS CHAR(4)) + '-01-04')
WHEN 5 THEN DATEADD(d, -4, CAST(@year AS CHAR(4)) + '-01-04')
WHEN 6 THEN DATEADD(d, -5, CAST(@year AS CHAR(4)) + '-01-04')
ELSE DATEADD(d, -6, CAST(@year AS CHAR(4)) + '-01-04')
END
) AS startdate ,
DATEADD(
d,
(@isoweek) * 7 - 1,
CASE (DATEPART(dw, CAST(@year AS CHAR(4)) + '-01-04') + @@DATEFIRST - 1) % 7
WHEN 1 THEN CAST(@year AS CHAR(4)) + '-01-04'
WHEN 2 THEN DATEADD(d, -1, CAST(@year AS CHAR(4)) + '-01-04')
WHEN 3 THEN DATEADD(d, -2, CAST(@year AS CHAR(4)) + '-01-04')
WHEN 4 THEN DATEADD(d, -3, CAST(@year AS CHAR(4)) + '-01-04')
WHEN 5 THEN DATEADD(d, -4, CAST(@year AS CHAR(4)) + '-01-04')
WHEN 6 THEN DATEADD(d, -5, CAST(@year AS CHAR(4)) + '-01-04')
ELSE DATEADD(d, -6, CAST(@year AS CHAR(4)) + '-01-04')
END
) AS enddate