Hi all,

        Sorry to reopen this issue but I still think there is a bug somewhere,
perhaps in the JDBC driver. The code and the end of this message
demonstrates the bug. Basically I write a timestamp to the database and then
read it back and  what I write and what I get back are different. I don't
see how I can progrmatically make this correct in a consistent way without
knowing the "magic" dates in Postgres. Note that I believe there are more
than just one magic date. Apparently at ever older date (around 10,000 BC I
believe) the seconds are dropped.
        The output from the code is (the computer's time was 03:23:49):

1850-Jan-01 03:23:49 JST
1850-Jan-01 06:23:49 JST

Thanks,

--Rainer


SimpleDateFormat format = new SimpleDateFormat( "yyyy-MMM-dd hh:mm:ss zz" );
Calendar cal = new GregorianCalendar();
cal.set( 1850, 00, 01 );
java.util.Date date = cal.getTime();
System.out.println( format.format( date ) );
try {
        PreparedStatement ps = con.prepareStatement(
                "update cust_prop_date set value = ? where customer_id = 8791"
        );
        ps.setTimestamp( 1, new Timestamp( date.getTime() ) );
        ps.execute();
        ps.close();

        ps = con.prepareStatement( "select value from cust_prop_date where
customer_id=8791" );
        ResultSet rs = ps.executeQuery();
        rs.next();
        date = new java.util.Date( rs.getTimestamp( "value" ).getTime() );
        rs.close();
        ps.close();
} catch( Exception e ) {
}
System.out.println( format.format( date ) );


---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to [EMAIL PROTECTED] so that your
message can get through to the mailing list cleanly

Reply via email to