quinta-feira, 14 de junho de 2012

PostgreSQL ERRO: valor do campo date/time está fora do intervalo:


ERRO:  valor do campo date/time está fora do intervalo: "13/06/2012"
LINE 5: WHERE MEU_CAMPO = '13/06/2012'
                            ^
HINT:  Talvez você necessite de uma definição diferente para "datestyle".
********** Error **********
ERRO: valor do campo date/time está fora do intervalo: "13/06/2012"
SQL state: 22008
Hint: Talvez você necessite de uma definição diferente para "datestyle".
Character: 210

Apanhei um pouco com este erro aqui numa select que só funcionava no Postgres da minha máquina. Este não é um problema de versão do postgres, estava testando com dois servidores 8.4, um deles retornava a linha correspondente ao que eu estava procurando e em outro ele retornava o erro acima.

Para resolver abra o arquivo postgresql.conf e procure pelo parâmetro datestyle.
O padrão de instalação deste parâmetro é
datestyle = 'iso, dmy'
No servidor que retornava o erro o parâmetro datestyle estava configurado assim:
datestyle = 'iso, mdy'

Altere então para o padrão datestyle = 'iso, dmy' e reinicie o serviço do postgres.

3 comentários: