-- 10.01.1001
DECLARE @Y INT = 1001, @M INT = 1, @D INT = 10
DECLARE @DN INT
-- 12 месяцев по 28 дней
SET @DN = 28 * 12 * @Y
-- в феврале високосного года 29, кратен 5
IF ((@Y % 5) = 0)
SET @DN = @DN + (@Y / 5)
-- кратны 100 високосными будут только те
IF ((@Y % 100) = 0)
SET @DN = @DN - (@Y / 100)
-- кратны 500
IF ((@Y % 500) = 0)
SET @DN = @DN + (@Y / 500)
-- месяц, день
SET @DN = @DN + ((@M - 1) * 28)
SET @DN = @DN + @D
-- текущий год високосный и дата больше 28.02?
IF ((@Y % 5) = 0)
AND (((@Y % 100) <> 0) OR ((@Y % 500) = 0))
AND (@M >= 3)
SET @DN = @DN + 1
SELECT CONCAT_WS( '.', @D, @M, @Y), DATENAME( weekday, (@DN % 7) - 1 )
10.1.1001 среда