From: | Carlos Beltran Villamizar <carlos(dot)beltran(at)datalog(dot)com(dot)co> |
---|---|
To: | Fernando Hevia <fhevia(at)ip-tel(dot)com(dot)ar> |
Cc: | 'Giorgio PostgreSQL' <giorgio(dot)pgsql(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | RE: Ayuda con Fechas |
Date: | 2009-06-12 19:58:13 |
Message-ID: | 1244836693.7713.5.camel@cbeltran-laptop |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
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.
From | Date | Subject | |
---|---|---|---|
Next Message | jorge alvarez | 2009-06-12 20:29:22 | INFORMACION |
Previous Message | Fernando Hevia | 2009-06-12 19:15:25 | RE: Ayuda con Fechas |