Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/09/2009, 19:16
Avatar de xdrtas
xdrtas
 
Fecha de Ingreso: junio-2008
Ubicación: Venezuela
Mensajes: 97
Antigüedad: 16 años, 6 meses
Puntos: 13
Diferencia de horario entre postgresql y sistema operativo

Hola a todos, tuve un pequeño problema con la hora de mi sistema operativo y con el servidor postgresql.
Estuve leyendo y leyendo, hasta que por fin dí con la solución a mi problema.
Pero no encontré nada que me explicara bien cómo solucionar este rollo así que lo publico aquí por si alguien llega a tener este mismo problema.
No soy un experto en postgreSQL así que si alguien de aquí sabe algo mejor no se lo pienso discutir .

Software:
S.O. --> Windows Vista Ultimate SP1
PostgreSQL --> 8.3.4

Planteamiento del problema:
Diferencia de horario entre el S.O. y el servidor postgreSQL. Vivo en Venezuela así que mi horario es GMT -04:30 expresado en segundos sería -16200.

Lo que dice la ayuda de postgreSQL:
timezone (string)
Sets the time zone for displaying and interpreting time stamps. The default is unknown, which means to use whatever the system environment specifies as the time zone. See Section 8.5.3 for more information.


*Section 8.5.3:
A full time zone name, for example America/New_York. The recognized time zone names are listed in the pg_timezone_names view (see Section 44.56). PostgreSQL uses the widely-used zic time zone data for this purpose, so the same names are also recognized by much other software.

*Solo he colocado el párrafo clave para la solución del problema. No he colocado todo lo que dice en esta sección porque es bastante largo, sin embargo, les dejo el link: postgresql.org/docs/8.3/static/datatype-datetime.html. Recuerden, sección 8.5.3

Solución al problema:
Abrir archivo --> postgresql.conf
Parámetro --> #timezone | Nota: El símbolo # indica que es un comentario.
Valor por defecto --> 'unknown'
Valor correcto --> 'America/Caracas'

Antes de configurar:
#timezone = 'unknown'

Después de configurar:
timezone = 'America/Caracas'

Si viven en España, sería como sigue:
timezone = 'Europe/Madrid'

Como se puede observa quité el símbolo de # de la línea para descomentar el parámetro. Las comillas simples si van porque el valor del parámetro es caracter, así que es importante NO omitir el uso de las comillas simples --> ''

Nota final:
En la siguiente ruta ...\postgresql\8.3\share\timezonesets se encuentran los archivos de texto con la configuración por zonas

Si no han entendido algo, no duden en escribir, trataré de responder a la mayor brevedad posible.

Saludo final:
Espero que esto le sea de ayuda para alguien más, que no se quede atorado como yo viendo por donde rayos se configura la hora y por último espero que les haya gustado. Saludos a todos y gracias.