Implicit conversion from string to timestamp

Started by David Goodenoughabout 20 years ago2 messagesgeneral
Jump to latest
#1David Goodenough
david.goodenough@btconnect.com

I have some generic code to which I pass a series of values to be inserted
into a PostgreSQL table which includes a field which is defined as a timestamp
and which I wish to populate with a string of the form
"yyyy-MM-dd hh:mm:ss.SSS". Under pg 8 and before this worked fine
but now with 8.1 I seem to be getting an exception which reads:-

ERROR: column "created" is of type timestamp without time zone but expression
is of type character varying

All this is done using JDBC (so I suppose it might be a JDBC error).

I know that a number of things were tightened up with 8.1, is this one of
them? Or should I be asking this on the JDBC list.

I had thought that passing strings into timestamps was acceptable.

David

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: David Goodenough (#1)
Re: Implicit conversion from string to timestamp

David Goodenough <david.goodenough@btconnect.com> writes:

I have some generic code to which I pass a series of values to be inserted
into a PostgreSQL table which includes a field which is defined as a timestamp
and which I wish to populate with a string of the form
"yyyy-MM-dd hh:mm:ss.SSS". Under pg 8 and before this worked fine
but now with 8.1 I seem to be getting an exception which reads:-

ERROR: column "created" is of type timestamp without time zone but expression
is of type character varying

All this is done using JDBC (so I suppose it might be a JDBC error).

Check the JDBC archives --- I think you're probably getting burnt by
some side effect of the changes they made to use parameterized queries.
You have to be a lot more honest now about informing the JDBC driver
what datatype your statement parameters really are.

regards, tom lane