Re: problems with types after update to 8.0

From: Richard Huxton <dev(at)archonet(dot)com>
To: Jason Tesser <jtesser(at)nbbc(dot)edu>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: problems with types after update to 8.0
Date: 2005-06-21 12:20:00
Message-ID: 42B805F0.3000804@archonet.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Jason Tesser wrote:
> Hi Richard and thank you for your help. Here is the actual message from
> the pg log
>
> ERROR: 42804: column "datetimein" is of type timestamp without time
> zone but expression is of type character varying
> HINT: You will need to rewrite or cast the expression.
>
> I can aviod this by rewritting my queries and casting all the stuff
> though I don't want to have to do this. I am trying to figure out what
> is happening so I can find a proper solution, like I said this all
> worked with pg 7.4

Are you sure the issue is the change from PG7.4=>PG8.0, or have you
upgraded your jdbc package at the same time?

> Here is my prepared statment in my java class
>
> private static final String MANUALINSERT =
> "insert into pactime (datetimein, pacpayperiodlink, wslink,
> deptlink, commment, type) " +
> "values ?,?,?,?,?,'man') ";

> and here si the way to fix but there are too many queires to have to
> change them all.
>
> private static final String MANUALINSERT =
> "insert into pactime (datetimein, pacpayperiodlink, wslink,
> deptlink, commment, type) " +
> "values (cast(? as timestamp),?,?,?,?,'man') ";

> here is where I am executing the statement in java
>
> stmt = con.prepareStatement(DATEOUTUPDATE);
> stmt.setString(1, dateout);
> stmt.setString(2, comment);
> stmt.setString(3, pactimeid);

Hmm - should this not be something like:
stmt.setTimestamp(1,dateout) / stmt.setDateTime(1,dateout)

You'll have to consider the fact that I don't really do Java, but I'm
guessing the "setString" has been tightened up in recent JDBC releases
to mean "varchar" rather than just "quoted-undefined". There must be an
equivalent method for timestamps.

As a workaround, consider downgrading your jdbc (if you've upgraded it),
or using an older protocol version (sorry, don't know how to specify
this with jdbc).

--
Richard Huxton
Archonet Ltd

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Bruno Wolff III 2005-06-21 12:25:03 Re: Scripting issues
Previous Message Jason Tesser 2005-06-21 12:08:16 Re: problems with types after update to 8.0