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
>
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 |