From: | Alvaro Herrera Munoz <alvherre(at)dcc(dot)uchile(dot)cl> |
---|---|
To: | jorge medina <jorge(at)dcenter(dot)cl> |
Cc: | pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx |
Subject: | Re: [Pgsql-ayuda] Migrar a PostgreSQL |
Date: | 2003-08-11 19:52:11 |
Message-ID: | 20030811195211.GE22607@dcc.uchile.cl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
On Mon, Aug 11, 2003 at 01:42:53PM -0400, jorge medina wrote:
> Cualquier consejo son bienvenidos. (Si alguien tiene alg?n ejemplo de
> FUNCTION(s), que regresen multiples registros (tuplas) y la forma de
> llamarlo desde un SQL tambien me interesa)
Muy simple:
CREATE OR REPLACE FUNCTION intervalos
(timestamp with time zone,
timestamp with time zone,
interval) RETURNS SETOF RECORD AS
'DECLARE
inicio ALIAS FOR $1;
valor timestamp with time zone;
final ALIAS FOR $2;
paso ALIAS FOR $3;
ret RECORD;
BEGIN
valor := inicio;
LOOP
IF valor >= final THEN
RETURN;
END IF;
SELECT INTO ret valor, valor+paso;
RETURN NEXT ret;
valor := (valor + paso);
END LOOP;
END;
' LANGUAGE plpgsql IMMUTABLE WITH (isstrict);
SELECT *
FROM intervalos('2003-05-01'::timestamptz, '2003-06-01'::timestamptz, '1 day')
AS foo(a timestamptz, b timestamptz);
--
Alvaro Herrera (<alvherre[(at)]dcc(dot)uchile(dot)cl>)
"On the other flipper, one wrong move and we're Fatal Exceptions"
(T.U.X.: Term Unit X - http://www.thelinuxreview.com/TUX/)
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera Munoz | 2003-08-11 19:54:18 | Re: [Pgsql-ayuda] Fecha dd/mm/aaaa |
Previous Message | Alvaro Herrera Munoz | 2003-08-11 19:43:26 | Re: [Pgsql-ayuda] Donde encuentro un TOOLS Admin para Windows Freeware ? |