Thread: Bad Date field
Hello everyone: Would anyone know how to find a bad date field in an external file? I have an external file that I am using to populate a table using the following command: COPY release_data FROM '/home/mperalta/release_data' USING DELIMITERS '|' When I issue this command, the response afte a while is the following: ERROR; Bad date external representation '9' The external file is rather large and I've tried finding this bad date manually with no success. The table I'm copying into has a datestamp of type DATE. Any suggestions would be greatly appreciated.
You could use a perl script to read your data and do a pattern match for consistency with your date output. Or you could import the data into a temp table which has a text field instead of date. You could query against your temp table to find offending data. Then use SQL to insert the data into your real table. Peralta Miguel-MPERALT1 wrote: > > Hello everyone: > > Would anyone know how to find a bad date field in an external file? I have > an external file that I am using to populate a table using the following > command: > COPY release_data FROM '/home/mperalta/release_data' USING DELIMITERS '|' > > When I issue this command, the response afte a while is the following: > > ERROR; Bad date external representation '9' > > The external file is rather large and I've tried finding this bad date > manually with no success. The table I'm copying into has a datestamp of > type DATE. > > Any suggestions would be greatly appreciated. > > ---------------------------(end of broadcast)--------------------------- > TIP 2: you can get off all lists at once with the unregister command > (send "unregister YourEmailAddressHere" to majordomo@postgresql.org) -- Bill MacArthur Webmaster DHS Club
Suggest: create another table, use text, instead of date type for that filed. AFter you get imported and fix invalid data for that filed, in pgsql, you can convert it to date type In pgsql, this is easy to find those invalid data. Bangh Peralta Miguel-MPERALT1 wrote: > Hello everyone: > > Would anyone know how to find a bad date field in an external file? I have > an external file that I am using to populate a table using the following > command: > COPY release_data FROM '/home/mperalta/release_data' USING DELIMITERS '|' > > When I issue this command, the response afte a while is the following: > > ERROR; Bad date external representation '9' > > The external file is rather large and I've tried finding this bad date > manually with no success. The table I'm copying into has a datestamp of > type DATE. > > Any suggestions would be greatly appreciated. > > ---------------------------(end of broadcast)--------------------------- > TIP 2: you can get off all lists at once with the unregister command > (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
Peralta Miguel-MPERALT1 <Miguel.Peralta@motorola.com> writes: > COPY release_data FROM '/home/mperalta/release_data' USING DELIMITERS '|' > When I issue this command, the response afte a while is the following: > ERROR; Bad date external representation '9' > The external file is rather large and I've tried finding this bad date > manually with no success. How old is your Postgres? The last several releases include line numbers when complaining about COPY problems. In the meantime, I like the other person's suggestion about importing into a temp table and then working with the temp table to clean up the data. regards, tom lane