Re: pl/pgsql and returns timestamp type
| От | Terry Yapt |
|---|---|
| Тема | Re: pl/pgsql and returns timestamp type |
| Дата | |
| Msg-id | 3D7E747A.ED4D9820@technovell.com обсуждение исходный текст |
| Ответ на | Re: pl/pgsql and returns timestamp type ("Josh Berkus" <josh@agliodbs.com>) |
| Список | pgsql-novice |
Hi Tom...
Here is the complete function modified and running fine now with its result on my test computer.
Thanks Tom, Josh and best regards.....
--====================================
DROP TABLE test;
CREATE TABLE test
(
clave numeric(7,0) not null,
PRIMARY KEY (clave)
) WITHOUT OIDS;
--====================================
DROP FUNCTION f_test(numeric, numeric);
CREATE OR REPLACE FUNCTION f_test(numeric, numeric) RETURNS interval AS '
DECLARE
p_datod ALIAS FOR $1;
p_datoh ALIAS FOR $2;
--
tdesde timestamp;
thasta timestamp;
BEGIN
select timeofday() into tdesde;
--
FOR X IN p_datod..p_datoh LOOP
INSERT INTO test VALUES (x);
END LOOP;
--
select timeofday() into thasta;
--
RETURN thasta - tdesde;
END;
' LANGUAGE 'plpgsql';
--====================================
select f_test(1,9999);
/*
f_test
-----------------
00:00:02.467566
(1 row)
*/
Tom Lane wrote:
>
> Josh Berkus <josh@agliodbs.com> writes:
> >> But then... How could I obtain "variable global values" (like the timestamp
> >> for example) in different function locations whit its "at time" values ???
>
> > Not that I know of. I'd suggest, instead, that you call the second now()
> > statement after the function completes.
>
> There is a function that gives true realtime, rather than transaction
> start time as now() does. I think it's called timeofday(), but check
> the manual.
>
> regards, tom lane
В списке pgsql-novice по дате отправления: