1
resposta

Comandos envolvendo datas no Postgres

Tenho usado as datas no formato 'dd-mm-aaaa' e tem dado certo. Porém, quando utilizo o comando conforme apresentado no curso, 'mm-dd-aaaa', retorna erro. Então minha dúvida é, qual o formato correto de consulta de datas?

controle_compras=# SELECT valor, data, observacao FROM compras WHERE data between '01-01-2009'AND '31-12-2009' ORDER BY data; valor | data | observacao --------+------------+------------------------- 12.39 | 2009-01-06 | SORVETE NO PARQUE 2498.0 | 2009-01-12 | COMPRAS DE JANEIRO 768.90 | 2009-01-16 | FESTA 4780.0 | 2009-01-23 | SALA DE ESTAR 392.15 | 2009-03-03 | QUARTOS 1203 | 2009-03-18 | QUARTOS 402.90 | 2009-03-21 | COPA 54.98 | 2009-04-12 | LANCHONETE 12.34 | 2009-05-23 | LANCHONETE 98.12 | 2009-07-09 | HOPI HARI 3212.4 | 2009-11-13 | COMPRAS DO MES 78.65 | 2009-12-04 | LANCHONETE 100.00 | 2009-12-14 | presente de aniversario 223.09 | 2009-12-17 | COMPRAS DE NATAL

1 resposta

Olá Ariston

O certo ou errado depende do locale configurado no banco. O seu banco deve estar configurado com a região do Brasil, neste caso o certo é o que está funcionando.

Você consegue mudar o formato de exibição se quiser. Fazendo por exemplo:

SELECT valor, TO_CHAR(data, 'DD-MM-YYYY'), observacao FROM compras WHERE data between '01-01-2009'AND '31-12-2009' ORDER BY data;

Tente aí pra ver como fica!