SET DATEFIRST 1
;WITH days(Date) AS
(
--Get 13th of this month
SELECT CAST(CAST(YEAR(GETDATE()) AS VARCHAR(4)) + '-' + CAST(MONTH(GETDATE()) AS VARCHAR(2)) + '-13' AS DATETIME)
UNION ALL
--Get 13th of next months
SELECT DATEADD(MONTH, 1, Date) FROM days
)
SELECT * FROM days
SELECT TOP 1 * FROM days WHERE DATEPART(dw, Date) = 5 AND Date > GETDATE()
Have you check this? check Execution plan also.
Thanks,
Ashka Modi
Software Engineer || credEcard Technologies (india) Pvt. Ltd.