Re: timestamp out of range

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Guillermo Muñoz <guillermo(dot)munoz(at)grupotekne(dot)com(dot)ar>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: timestamp out of range
Date: 2007-09-21 00:19:18
Message-ID: 20070921001918.GK30013@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Guillermo Muñoz escribió:
> Tengo un problema con los timestamp, el caso es este:
> tengo estos datos como varchar
> "1984-06-14"
> "1983-02-21"
> "1989-06-13"
> si les hago (trim(f_nac))::timestamp without time zone, me quedan
> "1984-06-14 00:00:00"
> "1999-12-31 -147768:00:00"
> "1989-06-13 00:00:00"
>
> el segundo caso deberia ser 1983-02-21 00:00:00 y la consulta da error
> por timestamp out of range si uso cast(f_nac as date) aparentemente
> no tengo problemas, el caso es que la tabla tiene 2 millones de
> registros y este error empezo de un dia a otro y no tengo un patron es
> aleatoreo. y aparentemente esta pasando en otras tabla que tambien
> tiene fechas que algunas llegan a los 11 millones de registro.

Uff. Guardar fechas en campos varchar es pesima idea, precisamente por
problemas como este.

Tengo la sensacion de que hay alguna conversion que se esta haciendo de
una manera inesperada. Por favor envia la salida de lo siguiente:

show datestyle;
show integer_datetimes;

select ctid, '{' || fnac || '}', trim(fnac),
trim(f_nac)::timestamp without time zone
from tabla where fnac like '1983%';

Lo que quiero saber es si esa fecha de 1999 que tiene las horas erroneas
equivale a la de 1983-02-21.

--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2007-09-21 00:20:56 Re: ayuda con query por favor
Previous Message Gabriel Hermes Colina Zambra 2007-09-21 00:05:04 Re: Cafeconf 2007