Postgres 8.3, 8.4, 9.1.... y Timezone

Estoy teniendo problemas con el parámetro timezone del /data/postgresql.conf en la version 8.3 de postgres.

Suponiendo que la hora es 13:15:00
Consulta de fecha y hora actual:
SELECT now()
SELECT CURRENT_TIMESTAMP

Postgres 8.3:

  • Si no defino nada en el timezone, me toma el horario de Inglaterra (zona horaria 0), es decir me muestra el horario 16:15:00-00
  • Si le seteo la zona horaria de argentina: timezone = ‘America/Argentina/Buenos_Aires’, me muestra una hora mas de la hora actual, es decir las 14:15:00
    ¿A que se debe? ¿Será un error de esta versión?

Postgres 8.4:

  • Si no defino nada en el timezone, me toma el horario local, es decir las 13:15:00
  • Si le seteo la zona horaria de argentina: timezone = ‘America/Argentina/Buenos_Aires’, me muestra tambien la hora correcta, es decir las 13:15:00

El sistema operativo es Windows XP.

Hola

fijate que hay en pg_timezone_names en ambas versiones.
Esto es en la misma máquina?

Emilio

Si es en la mismo equipo.
Lo raro es que me muestra uso horario -2 cuando debe ser -3

Siendo ahora las 11:23:29, muestra: 2012-12-21 12:23:29.006-02

Bueno pareciera que esta mal definido el timezone…
La consulta

select * from pg_timezone_names where name like '%Buenos%'

dice que Buenos Aires tiene el uso horario -2 en vez de -3…:

“America/Argentina/Buenos_Aires”;“ARST”;“-02:00:00”
“America/Buenos_Aires”;“ARST”;“-02:00:00”

Ahi esta el problema…

En Postgres 9.1, la misma consulta da correcto, con el uso horario -3:
“America/Argentina/Buenos_Aires”;“ART”;“-03:00:00”
“America/Buenos_Aires”;“ART”;“-03:00:00”

Se ve que cuando salio el postgres 8.3, argentina tenia otro horario en ese momento…

Gracias!

Por ahí tiene horario de verano (cuando se atrasaba o adelantaba una hora). Si necesitas arreglarlo en 8.3, creo que en una ocasión lo que había realizado es modificar el archivo America.txt en base a uno en que estuviera bien el horario.
Saludos,
Nico.

Bueno, para el pg 8.3 que tengo instalado, con el timezone de Jujuy anda :slight_smile:

timezone = ‘America/Argentina/Jujuy’

que te devuelve el 8.3 en is_dst?

Emilio

true

“America/Argentina/Buenos_Aires”;“ARST”;“-02:00:00”;t
“America/Buenos_Aires”;“ARST”;“-02:00:00”;t