La pregunta es cómo determinar, dado un rango de fechas, cuántos días domingos hay.
SQL Server no tiene una función propia como tal, así que podemos utilizar la siguiente
función la cual le enviamos el rango de fechas.
CREATE FUNCTION fncCuantosDomingosHay (@inicio DATETIME, @fin DATETIME)
RETURNS integer
AS
BEGIN
DECLARE @dia_sem INT
DECLARE @domingos INT
DECLARE @fecha datetime
SET @fecha=@inicio
SET @domingos=0
while @fecha <= @fin
BEGIN
SELECT @dia_sem=datepart(weekday,@fecha)
IF @dia_sem=1
SET @domingos=@domingos+1
SELECT @fecha=dateadd(dd,1,@fecha)
END
return @domingos
END
--EJECUTAMOS LA FUNCIÓN
declare @total integer
exec @total= fncCuantosDomingosHay '2013/10/16','2013/11/15'
print @total
--Resultado: 4