У меня есть лучшее решение
CREATE FUNCTION dbo.IsLeapYear(@year INT)
RETURNS BIT AS
BEGIN
DECLARE @d DATETIME,
@ans BIT
SET @d = CONVERT(DATETIME,'31/01/'+CONVERT(VARCHAR(4),@year),103)
IF DATEPART(DAY,DATEADD(MONTH,1,@d))=29 SET @ans=1 ELSE SET @ans=0
RETURN @ans
END
GO
Не стесняйтесь использовать