Re: now(), localtime...

From: "Roberto Andrade Fonseca" <randrade(at)inteligentes(dot)com(dot)mx>
To: "Alvaro Herrera" <alvherre(at)commandprompt(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: now(), localtime...
Date: 2007-05-07 17:11:58
Message-ID: 33788.189.135.235.97.1178557918.squirrel@www.inteligentes.com.mx
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola:

> Miguel Bernilla Sánchez escribió:
>
>> Disculpen si no me expliqu´q bien...
>> En mi BDs tengo una tabla ACCESOS, 2 de los campos de esta tabla es
>> f_ingreso y f_salida (tipos timestamp). En esta tabla, la aplicación
>> que desarrollo debe registrar la hora de ingreso y salida del sistema.
>> Al momento de ingresar/levantar mi aplicación la hora de ingreso se
>> registra bien, pero; la hora de salida siempre es la hora de ingreso,
>> o mejor dicho el now(), localtime, etc... simpre me devuelve la hora
>> que ingresé al sistema.
>> Ejm:
>> Ingreso a las 10:55 hrs. (esto se registra ok)
>> Salgo de la aplicación a las 11:20 (es aquí donde las funciones del
>> PostgreSQL simpre me devuelven 10:55)
>
> La funcion now() siempre devuelve la misma hora durante una transaccion.
> Si quieres la hora real, de "reloj", usa la funcion timeofday().
>
> En todo caso una transaccion de 25 minutos no suena muy sano en una
> aplicacion de este estilo. No haces ningun commit?

Si estás manejando la función now() dentro de una función de PL/pgSQL te
cuidado con ella, pues puedes terminar usando siempre el mismo tiempo:

http://www.postgresql.org/docs/8.2/interactive/plpgsql-expressions.html

En especial:

In the case of logfunc1, the PostgreSQL main parser knows when preparing
the plan for the INSERT that the string 'now' should be interpreted as
timestamp because the target column of logtable is of that type. Thus,
'now' will be converted to a constant when the INSERT is planned, and
then used in all invocations of logfunc1 during the lifetime of the
session. Needless to say, this isn't what the programmer wanted.

Saludos,

--
Roberto Andrade Fonseca
Director de Tecnología
Inteligentes.com, S.A. de C.V.
Tel. (55) 5207-1672 / 1673

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Miguel Bernilla Sánchez 2007-05-07 17:18:25 Re[2]: now(), localtime...
Previous Message Alvaro Herrera 2007-05-07 17:00:13 Re: now(), localtime...