What is the second Monday of this month?
;WITH [cteDate] AS ( -- @first + 7 * (@nth - 1) + (7 + @dow - DATEPART(WEEKDAY, @first + 7 * (@nth - 1))) % 7 -- Get @nth @dow 2 = Monday for us. Formula from Steve Kass. SELECT DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0) + 7 * (2 - 1) + (7 + 2 - DATEPART(WEEKDAY, DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0) + 7 * (2 - 1))) % 7 AS [SecondMonday]) SELECT [cteDate].[SecondMonday], DATENAME(WEEKDAY, [cteDate].[SecondMonday]) AS SearchWeekDay, DATEDIFF(DAY,GETDATE(),[cteDate].[SecondMonday]) AS DaysFromNow FROM [cteDate]