Re: More PostgreSQL conversion fun

Поиск
Список
Период
Сортировка
От Tony Caduto
Тема Re: More PostgreSQL conversion fun
Дата
Msg-id 44388A31.2090207@amsoftwaredesign.com
обсуждение исходный текст
Ответ на More PostgreSQL conversion fun  (Nick Wiltshire <nick@customdesigns.ca>)
Список pgsql-general
> I have a varchar field in a table which contains dates in yyyy-mm-dd format.
> The problem is that some have entered invalid dates like 1975-01-00 and I
> want to convert it to a date field to avoid this nonsense. Is there a way to
> test for failure of a type conversion and insert a NULL on failure?

Hi,
If you are using 8.0 or above you could write a plpgsql function and use
a for select loop with a exception handler.  In the loop try casting the
column in question to date type and if a error is raised because of a
invalid date set the column value to null.

See this section in the docs:
http://www.postgresql.org/docs/8.1/static/plpgsql-control-structures.html#PLPGSQL-ERROR-TRAPPING

After you have cleaned up the bad dates, then change the column to a
date type.

Note: I have not tested this, but I think it should work :-)

Later,


--
Tony Caduto
AM Software Design
Home of PG Lightning Admin for Postgresql
http://www.amsoftwaredesign.com

В списке pgsql-general по дате отправления:

Предыдущее
От: Stephen Frost
Дата:
Сообщение: Re: Debian package for freeradius_postgresql module
Следующее
От: Michael Glaesemann
Дата:
Сообщение: Re: Strange syntax for create/drop index