It's broke...
DECLARE
@Year
SMALLINT= 2017
, @MonthTINYINT= 10 -- 1-12
, @DOW TINYINT= 1 -- Sunday = 0, Monday = 1, ect...
, @ItrTINYINT= 1 -- iteration of specified DOW
BEGIN
DECLARE@1stDATE = CONVERT(VARCHAR(2),@Month)+'/1/' + CONVERT(VARCHAR(4),@Year);
DECLARE@RtrnDtDATE = DATEADD(DAY,((CEILING((CONVERT(DECIMAL(8, 2),17) % DATEPART(dw, @1st)) / 10) * 7) + (@DOW+((@Itr-2)*7))+1) - DATEPART(dw, @1st), @1st);
SELECT @RtrnDt
END
--Jeff Moden
Change is inevitable... Change for the better is not.