Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

LaraC

Data do Postgres diferente da data do S.O.

Recommended Posts

Caros colegas, estou com o seguinte problema. Tenho um servidor linux, banco postgres. Quando digito a palavra "date" no prompt do linux para verificar a hora, é retornado a data corretamente sem problemas. Porém quando entro dentro de um banco do postgres e digito o comando "select now()", a data retornada é diferente da data do Sistema Operacional. Eu achei que o postgres pegava a data do sistema, mas parece que não e isso que acontece. Algúem sabe onde configuro isso no postgres para que ele pegue a data do Sistema Operacional ? Grata!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

LaraC,

 

você se refere a data mostrada no now() ou às horas? Porque se for horas, acredito que seja um problema de timezone. Talvez o banco esteja configurado com um timezone diferente, dando essa diferença de horas.

 

No postgres.conf em /data/, tem

 

# - Locale and Formatting -

#timezone = unknown	# actually, defaults to TZ environment
					# setting

Ou seja, o timezone não está definido, o que não é problema. Pela documentação do timezone no manual http://www.postgresql.org/docs/8.3/static/...e-datetime.html

 

The timezone configuration parameter can be set in the file postgresql.conf, or in any of the other standard ways described in Chapter 18. There are also several special ways to set it:

 

* If timezone is not specified in postgresql.conf nor as a server command-line option, the server attempts to use the value of the TZ environment variable as the default time zone. If TZ is not defined or is not any of the time zone names known to PostgreSQL, the server attempts to determine the operating system's default time zone by checking the behavior of the C library function localtime(). The default time zone is selected as the closest match among PostgreSQL's known time zones. (These rules are also used to choose the default value of log_timezone, if it is not specified.)

* The SQL command SET TIME ZONE sets the time zone for the session. This is an alternative spelling of SET TIMEZONE TO with a more SQL-spec-compatible syntax.

* The PGTZ environment variable, if set at the client, is used by libpq applications to send a SET TIME ZONE command to the server upon connection.

É possível que ele não esteja conseguindo pegar a data do SO e esteja setando uma que ele acredita ser mais próxima, como diz no manual. Talvez se você setar o timezone, isso possa ser arrumado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Danilo, de fato o problema está na hora mesmo. A data está OK, mas a hora está uma na frente. O timezone está assim:

 

#timezone = unknown # actually, defaults to TZ environment

# setting

#timezone_abbreviations = 'Default'

 

 

Se eu tivesse que setar um valor para timezone, o que eu colocaria?

 

Grata!!!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Caros colegas, estou com o seguinte problema. Tenho um servidor linux, banco postgres. Quando digito a palavra "date" no prompt do linux para verificar a hora, é retornado a data corretamente sem problemas. Porém quando entro dentro de um banco do postgres e digito o comando "select now()", a data retornada é diferente da data do Sistema Operacional. Eu achei que o postgres pegava a data do sistema, mas parece que não e isso que acontece. Algúem sabe onde configuro isso no postgres para que ele pegue a data do Sistema Operacional ? Grata!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acredito que isso possa ajudar:

 

http://www.postgresql.org/docs/8.0/interac...e-keywords.html

 

 

Tente usar algo como -01:00 no timezone, para tirar uma hora da hora que o postgres fornece.

 

Lembrando que isso é só um wokaround para você arrumar o mais rápido possível. Depois que solucionado, seria bom tentar descobrir porque ele não está pegando a data exata do linux para que você não precise setar o timezone :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://www.postgresql.org/docs/8.0/interac...e-keywords.html

 

cara, faz o seguinte. Abra o arquivo postgresql.conf

 

la voce procura por uma variavel chamada timezone que deve ta comentada ou com o valor brazil/east. Voce vai mudar para

 

timezone = America/Belem

 

reinicie seu banco e pronto.!

 

http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://www.postgresql.org/docs/8.0/interac...e-keywords.html

 

cara, faz o seguinte. Abra o arquivo postgresql.conf

 

la voce procura por uma variavel chamada timezone que deve ta comentada ou com o valor brazil/east. Voce vai mudar para

 

timezone = America/Belem

 

reinicie seu banco e pronto.!

 

http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.