2015-07-01 11:12 GMT-03:00 Fernando Cambiaghi <cambia...@gmail.com>:

> 1. Como posso contornar essa situação, para que na carga dos dados o
> PostgreSQL não trate horário de verão, mesmo os campos sendo do tipo
> timestampz?
>
>
Primeiro, creio que você está um pouco enganado, o PostgreSQL não está
adicionando uma hora. Isso tudo vai depender de como você está inserindo o
registro, veja que o tipo `timestamp WITH time zone` armazena o valor
absoluto, e a conversão ao timezone é feito ao exibir. Dependendo do
formato usado na inserção, pode-se ou não aparecer essa 1 hora a mais no
resultado (difícil dizer sem mais detalhes).


> 2. É muito ruim continuar utilizando os campos como timestampz ou eu
> deveria urgentemente alterá-los para timestamp ou ainda para date, visto
> que todas as aplicações teriam que ser testadas devido a declaração de
> variáveis que são tipo datetime?
>
>
Eu diria que você deveria urgentemente alterá-los para DATE. Uma etapa mais
"suave" seria alterar para "timestamp", mas eu tentaria DATE somente e
verificaria como a aplicação se comporta, pode ser que não tenha tanta
coisa pra mudar na aplicação.


> 3. Ao entrar em horário de verão, o PostgreSQL irá começar a gravar as
> datas com 01?


Como eu já disse, não. Entretanto, dependendo de como você está informando
os dados, você pode ter essa impressão. Por exemplo, se estiver usando um
"time zone offset" ao invés do nome:

    postgres=# SELECT '2015-02-01 00:00:00-03:00'::timestamptz; -- errado
          timestamptz
    ------------------------
     2015-02-01 01:00:00-02
    (1 row)

    postgres=# SELECT '2015-02-01 00:00:00 America/Sao_Paulo'::timestamptz;
-- correto
          timestamptz
    ------------------------
     2015-02-01 00:00:00-02
    (1 row)

Atenciosamente,
-- 
Matheus de Oliveira
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a