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