________________________________ > From: marc...@ig.com.br > To: pgbr-geral@listas.postgresql.org.br > Date: Wed, 10 Nov 2010 19:47:53 -0200 > Subject: [pgbr-geral] Que loco essa select, pegar data e hora do servidor > > Pessoal, meu Postgres está "biruta" ? > > Estou usando a seguinte select para pegar a data e hora do servidor: > > select > current_date as data_sys, > current_time as hora_sys > > Acontece que ele está pegando a hora com uma hora de diferença a menos, > por exemplo, quando é no relógio da minha máquina (windows) 19:43 ele > pega 18:43 > Não era pra o banco pegar a data e hora da bios ou do sistema operacional? > Veja que estou falando da mesma máquina pois estou desenvolvendo localmente. > > Bem... como sou novo no postgres, vai a pergunta: > Como pegar corretamente a data e hora do servidor, levando em conta o > relogio do sistema e não do banco? > > Preciso pegar a hora pelo banco porque quero ter a hora do servidor e > não da maquina local, eu faço isso na boa com mysql. > > obs: me parece que ele está acertando conforme o horario de verão... > mas eu não pedi pra ele fazer isso, rsrsr, ele tem vida própria, rsrs > > Marcelo Silva > ------------------------------------------------ > msn: marc...@ig.com.br > Prezado Marcelo,
Esse assunto já foi tratado em [1], mas complemento com algumas informações abaixo. Como pode ser visto em [2] a função "current_time" retorna um tipo "time with time zone". Isso Quer dizer, conforme [3]: "Quando um valor de timestamp with time zone é enviado para a saída, é sempre convertido de UTC para a zona horária corrente de 'timezone', e mostrado como hora local desta zona. Para ver a hora em outra zona horária, ou se muda 'timezone' ou se usa a construção AT TIME ZONE (consulte a Seção 9.9.3)." O parâmetro de sistema "timezone" define qual é a zona horária utilizada pelo PostgreSQL. Sua definição em [4]: timezone (string) ------------------- Define a zona horária para exibir e interpretar os carimbos do tempo. O valor padrão é 'unknown', o que significa utilizar o que estiver especificado no ambiente do sistema operacional para zona horária. Para obter informações adicionais deve ser consultada a Seção 8.5" Em [5] está a documentação sobre o parâmetro para a versão 8.4. A string deste parâmetro é o nome da zona horária, baseada na view "pg_timezone_names" Então na view "pg_timezone_names"(ver [7]) você verá as zonas que podem ser utilizadas em "timezone". [1]http://www.mail-archive.com/pgbr-geral@listas.postgresql.org.br/msg19770.html [2]http://www.postgresql.org/docs/8.4/interactive/functions-datetime.html [3]http://pgdocptbr.sourceforge.net/pg80/datatype-datetime.html [4]http://pgdocptbr.sourceforge.net/pg80/runtime-config.html#GUC-TIMEZONE [5]http://www.postgresql.org/docs/8.4/interactive/runtime-config-client.html#GUC-TIMEZONE [6]http://www.postgresql.org/docs/8.4/interactive/datatype-datetime.html#DATATYPE-TIMEZONES [7]http://www.postgresql.org/docs/8.4/interactive/view-pg-timezone-names.html Marçal de Lima Hokama --------------------- e-mail: mhok...@hotmail.com http://www.twitter.com/mhokama _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral