Re: Re: timestamps cannot be created without time zones
От | Rainer Mager |
---|---|
Тема | Re: Re: timestamps cannot be created without time zones |
Дата | |
Msg-id | NEBBJBCAFMMNIHGDLFKGEEGNEOAA.rmager@vgkk.com обсуждение исходный текст |
Ответ на | timestamps cannot be created without time zones (pgsql-bugs@postgresql.org) |
Ответы |
Re: Re: timestamps cannot be created without time zones
|
Список | pgsql-bugs |
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 ) );
В списке pgsql-bugs по дате отправления: