[Pgsql-ayuda] Funcion now()

Manuel Sugawara masm@fciencias.unam.mx
24 Sep 2003 12:21:39 -0500


Carmen Gloria Sepulveda Dedes <csepulveda@atichile.com> writes:

> Hola.
>=20
> El uso de now() es para cuantificar el tiempo que
> toman las sentencias sql dentro de la funcion.
>=20
> Sin embargo, parece ser que el valor de now()
> se "congela" cuando aparece en un bloque begin-end.
>=20
> Como puedo hacer que esto no sea asi?

No puedes :-(, por definici=F3n la funci=F3n now() o CURRENT_TIMESTAMP
regresan el valor del momento en que inicio la transacci=F3n. Podr=EDas
hacer algo como

select now();
begin;
 ...
end;
select now();

Tambi=E9n podr=EDas usar timeofday que si avanza durante el transcurso de
las transacciones. Toma en cuenta que, por razones hist=F3ricas
desconocidas por mi, regresa texto en vez de un timestamp, lo cual no
es tan grave ya que puedes hacer el cast:

select timeofday()::timestamp;

Para m=E1s detalles la documentaci=F3n en l=EDnea de PostgreSQL en:

  http://www.postgresql.org/docs/7.3/static/functions-datetime.html#FUNCTIO=
NS-DATETIME-CURRENT

Saludos,
Manuel.