En efecto Señores también me pareció divertido y bueno aquí otra
solución.
create or replace function DomingosEntreFechas(date, date)
RETURNS integer
AS $BODY$
DECLARE
FechaParamDesde ALIAS FOR $1;
FechaParamHasta ALIAS FOR $2;
FechaDesde date;
FechaHasta date;
NDomingos integer;
BEGIN
FechaDesde = FechaParamDesde;
FechaHasta = FechaParamHasta;
IF (FechaHasta < FechaDesde) THEN
FechaHasta = FechaParamDesde;
FechaDesde = FechaParamHasta;
END IF;
NDomingos = 0;
LOOP
EXIT WHEN FechaDesde > FechaHasta;
IF EXTRACT(DOW FROM FechaDesde) = 0 THEN
NDomingos = NDomingos + 1;
FechaDesde = FechaDesde + 7;
ELSE
FechaDesde = FechaDesde + 1;
END IF;
END LOOP;
RETURN NDomingos;
END;
$BODY$ LANGUAGE 'plpgsql';
Prueba:
SELECT DomingosEntreFechas('2009-01-01', '2009-01-31')
4
SELECT DomingosEntreFechas('2009-01-04', '2009-01-04')
1
Desde Bogotá Colombia. Carlos Beltrán V.
--
TIP 2: puedes desuscribirte de todas las listas simult�neamente
(env�a "unregister TuDirecci�nDeCorreo" a [email protected])