edersonecris escreveu:
> 
> Instalei o pg com o formato de data em ymd, só que agora com todo o bd 
> pronto, tenho que fazer umas consultas de contas a pagar. E no delphi 
> estou tendo que escrever as datas nesse formato para filtra por sql. Tem 
> como eu mudar o formato de data no pg instalado no windows de forma 
> definitiva (incluindo alterando os registros gravados) para o formato dmy?
> 


Você está confundindo o formato de exibição da data com o formato 
de armazenamento.
Um campo date é armazenado num formato próprio (basicamente a 
quantidade de dias contados a partir de determinada data).

Você pode instruir o PostgreSQL a como exibir os campos date bem 
como a maneira de interpretar uma data na entrada.

Veja o item 8.5.1 em:
http://www.postgresql.org/docs/8.2/interactive/datatype-datetime.html

bdteste=# SELECT current_setting('datestyle');
  current_setting
-----------------
  Postgres, MDY
(1 registro)

bdteste=# SELECT current_date, to_char(current_date, 'DDMONYYYY');
     date    |  to_char
------------+-----------
  01-23-2008 | 23JAN2008
(1 registro)

bdteste=# --
bdteste=# -- Formato de interpretação e exibição de datas
bdteste=# --
bdteste=# -- ISO
bdteste=# --
bdteste=# SET datestyle TO ISO, MDY;
SET
bdteste=# SELECT '2007-02-09'::date, to_char('09/02/2007'::date, 
'DD.MON.YYYY');
     date    |   to_char
------------+-------------
  2007-02-09 | 02.SEP.2007
(1 registro)

bdteste=# SET datestyle TO ISO, DMY;
SET
bdteste=# SELECT '2007-02-09'::date, to_char('09/02/2007'::date, 
'DD.MON.YYYY');
     date    |   to_char
------------+-------------
  2007-02-09 | 09.FEB.2007
(1 registro)

bdteste=# --
bdteste=# -- SQL
bdteste=# --
bdteste=# SET datestyle TO SQL, MDY;
SET
bdteste=# SELECT '2007-02-09'::date, to_char('09/02/2007'::date, 
'DD.MON.YYYY');
     date    |   to_char
------------+-------------
  02/09/2007 | 02.SEP.2007
(1 registro)

bdteste=# SET datestyle TO SQL, DMY;
SET
bdteste=# SELECT '2007-02-09'::date, to_char('09/02/2007'::date, 
'DD.MON.YYYY');
     date    |   to_char
------------+-------------
  09/02/2007 | 09.FEB.2007
(1 registro)

bdteste=# --
bdteste=# -- Postgres
bdteste=# --
bdteste=# SET datestyle TO POSTGRES, MDY;
SET
bdteste=# SELECT '2007-02-09'::date, to_char('09/02/2007'::date, 
'DD.MON.YYYY');
     date    |   to_char
------------+-------------
  02-09-2007 | 02.SEP.2007
(1 registro)

bdteste=# SET datestyle TO POSTGRES, DMY;
SET
bdteste=# SELECT '2007-02-09'::date, to_char('09/02/2007'::date, 
'DD.MON.YYYY');
     date    |   to_char
------------+-------------
  09-02-2007 | 09.FEB.2007
(1 registro)

Osvaldo
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a