Обсуждение: JDBC setTimestamp/getTimestamp
Hi, if you do Calendar cal = Calendar.getInstance(); cal.setTime( new java.util.Date() ); stmt.setTimeStamp( 1, new java.sql.Timestamp( cal.getTime().getTime() ) ); where param 1 is a column with datatype timestamp. And then you do rset.getTimeStamp( 1 ); to select the same column, you get an exception, because the setTimeStamp did a toString() on the java.sql.Timestamp, which returns "yyyy-mm-dd hh:mm:ss.fffffffff". Then the select statement will return something like this: "2000-06-03 11:47:47.85-04" and the getTimeStamp tries to shove thaat into a SimpleDateFormat initialized with this: "yyyy-MM-dd HH:mm:sszzz". Would the following be a bad way to fix this? Check if the string with the date value contains "." and then use a different format string. I think it would probably be better if the server always returned "yyyy-MM-dd HH:mm:ss.SSSzzz" regardless of whether milliseconds were specified in the Insert/Update. -Nissim
On Sat, 3 Jun 2000, Nissim wrote: > Hi, > > if you do > > Calendar cal = Calendar.getInstance(); > cal.setTime( new java.util.Date() ); > stmt.setTimeStamp( 1, new java.sql.Timestamp( cal.getTime().getTime() ) > ); > > where param 1 is a column with datatype timestamp. > > And then you do > > rset.getTimeStamp( 1 ); > > to select the same column, > > you get an exception, because the setTimeStamp did a toString() on the > java.sql.Timestamp, which returns "yyyy-mm-dd hh:mm:ss.fffffffff". Then > the select statement will return something like this: "2000-06-03 > 11:47:47.85-04" and the getTimeStamp tries to shove thaat into a > SimpleDateFormat initialized with this: "yyyy-MM-dd HH:mm:sszzz". > > Would the following be a bad way to fix this? This was fixed in cvs last week. -- Peter T Mount peter@retep.org.uk Main Homepage: http://www.retep.org.uk PostgreSQL JDBC Faq: http://www.retep.org.uk/postgresJava PDF Generator: http://www.retep.org.uk/pdf