Aqui tienes la funcion ya hecha...
Un año bisiesto es multiplo de 4 pero no de 100, y si de 400
Código:
create function dbo.fnDiasDelMes(@Mes as int, @anyo as int) returns int
-- Calcula los dias de un mes, teniendo en cuenta si el año es bisiesto o no
as
begin
declare @dias as int
if @Mes = 1 or @Mes = 3 or @Mes = 5 or @Mes = 7 or @Mes = 8 or @Mes = 10 or @Mes = 12
set @dias = 31
else if @Mes = 4 or @Mes = 6 or @Mes = 9 or @Mes = 11
set @dias = 30
else if @Mes = 2
if (@anyo%4 = 0) and ((@anyo%100 <> 0) or (@anyo%400 = 0))
set @dias = 29
else
set @dias = 28
return (@dias)
end
GO