Вы можете использовать следующий шаблон для получения первой (или последней) даты данного года и недели. Затем, имея действительное время даты, просто используйте DATEDIFF , так как он имеет встроенную функциональность, чтобы получить разницу в неделях:
DECLARE @WeekNo int= 52
DECLARE @Year int=2018
SELECT DATEADD(wk,@WeekNo-1,DATEADD(yy,@Year-1900,0)) AS WeekStart,
DATEADD(wk,@WeekNo,DATEADD(yy,@Year-1900,0))-1 AS WeekEnd
GO
DECLARE @WeekNo int= 1
DECLARE @Year int=2019
SELECT DATEADD(wk,@WeekNo-1,DATEADD(yy,@Year-1900,0)) AS WeekStart,
DATEADD(wk,@WeekNo,DATEADD(yy,@Year-1900,0))-1 AS WeekEnd
GO
SELECT DATEDIFF(WEEK, '2018-12-24 00:00:00.000', '2019-01-01 00:00:00.000')
В одном утверждении:
DECLARE @Input01 VARCHAR(6) = '201852'
,@Input02 VARCHAR(6) = '201901'
SELECT DATEDIFF(WEEK, DATEADD(WEEK, RIGHT(@Input01, 2)-1,DATEADD(YEAR,LEFT(@Input01, 4)-1900,0)), DATEADD(WEEK,RIGHT(@Input02, 2)-1,DATEADD(YEAR,LEFT(@Input02, 4)-1900,0)));