El 15/11/11 11:26, Ramón Alberto Bruening González escribió:


------------------------------------------------------------------------
Date: Tue, 15 Nov 2011 11:19:33 -0300
From: rjgonz...@estrads.com.ar
To: albertobruen...@hotmail.com
CC: pgsql-es-ayuda@postgresql.org
Subject: Re: [pgsql-es-ayuda] Consulta sobre Fecha y Hora del Servidor.

El 15/11/11 11:04, Ramón Alberto Bruening González escribió:



    ------------------------------------------------------------------------
    Date: Tue, 15 Nov 2011 10:55:37 -0300
    From: rjgonz...@estrads.com.ar <mailto:rjgonz...@estrads.com.ar>
    To: albertobruen...@hotmail.com <mailto:albertobruen...@hotmail.com>
    CC: pgsql-es-ayuda@postgresql.org
    <mailto:pgsql-es-ayuda@postgresql.org>
    Subject: Re: [pgsql-es-ayuda] Consulta sobre Fecha y Hora del
    Servidor.

    El 15/11/11 10:28, Ramón Alberto Bruening González escribió:

        Buenos Dias compañeros:

        Tengo una consulta, la fecha y hora del servidor estan bien,
        pero dependiendo de la zona horaria de la Pc cliente, me
        cambia la hora que obtengo con select now(), como puedo hacer
        que por mas que la zona horaria de la PC cliente este mal,
        respete la hora del servidor.  Utilizo Postgresql 8.2.14,
        sobre Fedora 12.

        Gracias.


    |CURRENT_TIME| and |CURRENT_TIMESTAMP| deliver values with time
    zone; |LOCALTIME| and |LOCALTIMESTAMP| deliver values without time
    zone.

    O sea que tenes que usar LOCALTIMESTAMP para recibir la fecha
    local del servidor. Now is un alias de CURRENT_TIMESTAMP

    Saludos

    Rodrigo

    Segun lo que estoy leyendo, todas funciones retornan lo mismo,
    solo con formatos y "redondeos" de fecha diferentes. Mi problema
    es que tengo 10 maquinas, de las cuales 6 tienen la
    zona horaria correcta y me trae bien la hora del servidor, pero
    tengo 4 maquina, q constantemente las zonas horarias son cambiadas
    y me trae con diferencia de horas.


A ver...

ci_wlmarketing=> select now(), LOCALTIMESTAMP;
              now              |         timestamp
-------------------------------+----------------------------
 2011-11-15 09:17:30.173412-05 | 2011-11-15 09:17:30.173412
(1 fila)

o sea que la primera te trae timestamp with timezone....o sea que tu maquina lo va a interpretar de acuerdo a su zona horaria y la segunda no agrega zona horaria....

Quizas no te estoy entendiendo, pero si queres desentenderte de la zona horaria (cosa que yo no hago pero entiendo tus motivos) tenes que usar la segunda entonces la maquina cliente no tiene otra cosa que la hora del servidor sin zona horaria agregada....

Espero que te sirva sino intentare entenderte correctamente en tu respuesta

Saludos

Rodrigo

------------------------------------------------------------------------------------------------------------------------------------------
Te explico mejor:

Fecha Hora Servidor: 2011-11-15 09:54:16.976-04:30 con el comando select now() ejecutado desde el servidor. Fecha Hora Cliente 1 (Correcto): 2011-11-15 09:55:25.960-04:30 con el comando select ejecutado desde el cliente 1 zona horaria correcta. Fecha Hora Cliente 2 (Incorrecto): 2011-11-15 12:56:35.801-04:30 con el comando select ejecutado desde el cliente 2 zona horaria incorrecta.
Me parece que vas a tener que hacer como dice Alvaro y usar SET TIMEZONE antes de la consulta.....

Si lo que queres es sin zona horaria podes usar LOCALTIMESTAMP, pero si queres la hora del servidor con zona horaria tenes que forzar cual es la correcta en tu caso

Responder a