From: | Tony Caduto <tony(dot)caduto(at)amsoftwaredesign(dot)com> |
---|---|
To: | Nick Wiltshire <nick(at)customdesigns(dot)ca>, pgsql-general(at)postgresql(dot)org |
Subject: | Re: More PostgreSQL conversion fun |
Date: | 2006-04-09 04:14:41 |
Message-ID: | 44388A31.2090207@amsoftwaredesign.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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
From | Date | Subject | |
---|---|---|---|
Next Message | Haris Peco | 2006-04-09 04:33:35 | Re: Strange syntax for create/drop index |
Previous Message | Haris Peco | 2006-04-09 03:56:56 | Strange syntax for create/drop index |