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 majord...@postgresql.org)