Here is my version
create FUNCTION date_from_week_number_day
(
@year int = 2014
,@weeknumber int = 8
,@day int = 7
)
RETURNS date
AS
BEGIN
declare
@date date
,@first_date_of_year date
set @first_date_of_year = CONVERT(date,cast(@year as varchar(4))+'.1.1')
set @date = dateadd(dd,@day
,dateadd(dd,-1*DATEPART(WEEKDAY,@first_date_of_year)
, DATEADD(WEEK,@weeknumber-1,@first_date_of_year)
)
)
return @date
END
you can call it
SET DATEFIRST 7
select dbo.date_from_week_number_day(2014,8,7)
source
share