Re: Bad External Date Representation error for any date which - Mailing list pgsql-jdbc

From Hale Pringle
Subject Re: Bad External Date Representation error for any date which
Date
Msg-id HIEOJHJBFLIEMFCAOMOEKELBCPAA.halepringle@yahoo.com
Whole thread Raw
In response to Re: Bad External Date Representation error for any date which  (Barry Lind <blind@xythos.com>)
List pgsql-jdbc
Barry,
Your answer concerns me (the first one in over two years).  The PostgreSQL
JDBC documentation indicates that a statement should work as well as a
prepared statement and this seems reasonable.

I set up a test table using the create statement below. My PostgreSQL is
7.2.1 and JDBC is dated 2/9/2002.  Inserts and updates worked fine.

In my research of I18N, they talked about all JDBC drivers supporting the
"standard escape format" which is '2002-11-04' so one option is use Java's
date formatting routines to convert to this format.

I think we should track further to find out why is doesn't work in certain
situations.

TIA
Hale


> -----Original Message-----
> From: pgsql-jdbc-owner@postgresql.org
> [mailto:pgsql-jdbc-owner@postgresql.org]On Behalf Of Barry Lind
> Sent: Wednesday, June 04, 2003 8:33 PM
> To: dean walliss
> Cc: pgsql-jdbc@postgresql.org
> Subject: Re: [JDBC] Bad External Date Representation error for any date
> which
>
>
> Dean,
>
> What I think you really want to be using is a PreparedStatement.
>
>    PreparedStatement pstmt = conn.prepareStatement("insert into memo
> (memodate, memotext, lastmod) values (?,?,?)");
>    pstmt.setDate(1, myDate);
>    pstmt.setString(2, myString);
>    pstmt.setTimestamp(3, myTimestamp);
>    ResultSet rset = pstmt.executeQuery();
>    ...
>
> Using a PreparedStatement lets the driver take care of the work
> necessary to send the value to the server in the correct format, so that
> you don't need to worry about it.
>
> thanks,
> --Barry
>
>
> dean walliss wrote:
> > Hi,
> >
> > I'm getting a "Bad External Date Representation" error when I try to
> > insert a record containing a date which falls on a Saturday.
> >
> > I'm using postgresql v 7.3.3
> >
> > I'm using the jdbc driver pg73jdbc3.jar build110 from 28/05/2003
> >
> > The example table looks like this:
> >
> > CREATE TABLE Memo (
> >    MemoId SERIAL NOT NULL,
> >    MemoDate DATE NOT NULL,
> >    MemoText TEXT,
> >    LastMod TIMESTAMP,
> >   PRIMARY KEY (MemoId)
> > );
> >
> > The query looks like this:
> >
> > insert into Memo (MemoDate, MemoText, LastMod)
> > values ('Sat Nov 02 00:00:00 EST 2002', 'Something should
> happen on this
> > day.', '2003-06-02 15:45:44.665');
> >
> >
> > The error looks like this:
> >
> > ERROR:  Bad date external representation 'Sat Nov 02 00:00:00 EST 2002'
> >
> > Note that if I change the "Sat" portion to "Sun", the query executes
> > properly, even though Nov 02 2002 is not a Sunday.
> >
> > Note that if I remove the three-character day representation altogether
> > and use "Nov 02 00:00:00 EST 2002", the query executes properly.
> >
> > Note that this representation of the date "Sat Nov 02 00:00:00
> EST 2002"
> > results from using a java.sql.Date object.
> >
> > Is there something about the Date datatype in postgres that I'm
> > missing?  Is there some idiomatic way to convert a java.sql.Date object
> > into something that postgres (or it's jdbc driver) can use?
> >
> > Thanks.
> >
> > Dean.
> >
>
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo@postgresql.org so that your
> message can get through to the mailing list cleanly


pgsql-jdbc by date:

Previous
From: Paul Thomas
Date:
Subject: Re: Official JDBC driver release ?
Next
From: Brett Delia
Date:
Subject: Connection Pooling?