Re: Converter VARCHAR para TIMESTAMP com milleseconds ERROR: date/time field value out of range

From: Cleiton Luiz Domazak <cleitondomazak(at)gmail(dot)com>
To: tureba(at)gmail(dot)com
Cc: pgsql-pt-geral(at)lists(dot)postgresql(dot)org
Subject: Re: Converter VARCHAR para TIMESTAMP com milleseconds ERROR: date/time field value out of range
Date: 2018-10-09 13:28:01
Message-ID: CAKx1C8GGPB34Q6VCh6h4C2a6j7fJtxJGzrtJ5R4K1ZY1Xf4e=w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-pt-geral

On Tue, Oct 9, 2018 at 2:23 PM Arthur Nascimento <tureba(at)gmail(dot)com> wrote:

> Oi Cleiton,
>
> On Tue, 9 Oct 2018 at 07:00, Cleiton Luiz Domazak
> <cleitondomazak(at)gmail(dot)com> wrote:
> >
> > Eu tenho um campo com o segundo VARCHAR "2018-07-05T16:14:27.1427" e eu
> o converto para timestamp com o seguinte select:
> >
> > select last_run, to_char(to_timestamp(last_run,'yyyy-MM-dd HH24:mi:ss')
> - interval '2 hour','yyyy-MM-dd"T"HH24:mi:ss"Z"') as new_last_run from
> schedule_tasks;
>
> Primeiro, não use timestamp. Ele descarta o timezone do texto de
> entrada e também ignora o timezone da sua sessão, o que quase nunca é
> o que você quer e vai te causar trabalho extra na entrada e na saída,
> como já está causando. Use timestamptz (with timezone), que trata
> corretamente o timezone na entrada e na saída; quando quiser a saída
> em um timezone, use, para um campo:
>
> SELECT seu_timestamptz AT TIME ZONE 'Brazil/Acre';
>
> ou, para aplicar em todos os campos timestamptz que o banco te retorna
> a partir deste momento na sessao:
>
> SET TIMEZONE TO 'Brazil/Acre';
> SELECT seu_timestamptz;
>
>
> Segundo, quando estiver usando esse formato (ISO 8601) de entrada, use
> cast(seu_texto to timestamptz) ou seu_texto::timestamptz. A função
> to_timestamp[tz] é mais para quando se usa formatos ambíguos ou não
> formatados corretamente. Nesse caso, datestyle é desnecessário e não
> se aplica.
>
> Até mais,
>

Muito obrigado Arthur, irei avaliar essa situação e tentar utilizar de
outra forma realmente. Até pq como o Osvaldo já enviou, foi realmente uma
alteração feita a partir da versão 10.

>
> Tureba - Arthur Nascimento
>

In response to

Browse pgsql-pt-geral by date

  From Date Subject
Next Message Euler Taveira 2018-10-09 13:31:34 Re: Converter VARCHAR para TIMESTAMP com milleseconds ERROR: date/time field value out of range
Previous Message Cleiton Luiz Domazak 2018-10-09 13:26:42 Re: Converter VARCHAR para TIMESTAMP com milleseconds ERROR: date/time field value out of range