Re: jdbc problem with time
От | Barry Lind |
---|---|
Тема | Re: jdbc problem with time |
Дата | |
Msg-id | 3D2B4467.9080301@xythos.com обсуждение исходный текст |
Ответ на | jdbc problem with time (Laurette Cisneros <laurette@nextbus.com>) |
Ответы |
Re: jdbc problem with time
(Laurette Cisneros <laurette@nextbus.com>)
Re: jdbc problem with time (Laurette Cisneros <laurette@nextbus.com>) |
Список | pgsql-jdbc |
Laurette, What version are you using? Can you still reproduce the problem with the latest development drivers (which you can download from jdbc.postgresql.org)? thanks, --Barry Laurette Cisneros wrote: >Any ideas on this? > >We have a table: > >xyzzy=# select sched_id, tod_start, tod_end from schedule where sched_id=1; > > sched_id | tod_start | tod_end >----------+-----------+--------------- > 1 | 00:00:00 | 23:59:59.9990 > >Notice the millisecond values set for tod_end. The jdbc driver barfs when >trying to read the time from the result set using the java code: >Time t = rs.getTime("tod_end"); > >The stack trace from here looks like: > >java.lang.StringIndexOutOfBoundsException: String index out of range: 19 >at java.lang.String.substring(String.java:1522) at >org.postgresql.jdbc2.ResultSet.toTime(ResultSet.java:1586) at >org.postgresql.jdbc2.ResultSet.getTime(ResultSet.java:385) at >org.postgresql.jdbc2.ResultSet.getTime(ResultSet.java:612) at >COM.NextBus.signad.SelectScheduleDetails.getObject(SelectScheduleDetails.java:30) >at > >Here is the offending piece of code. It fails in the case where the time >string looks like: "HH:MM:SS:mmmm". The code assumes that anything longer >than 8 characters is a timestamp and tries to get a substring accordingly. >However, the substring call fails, since this is a "time without time >zone" and not an SQL timestamp. > >Here is the code: > >public static Time toTime(String s) throws SQLException >{ > if (s == null) > return null; // SQL NULL > // length == 8: SQL Time > // length > 8: SQL Timestamp > try > { > return java.sql.Time.valueOf((s.length() == 8) ? s : s.substring(11, 19)); > } > catch (NumberFormatException e) > { > throw new PSQLException("postgresql.res.badtime", s); > } >} > > >Thanks for the help, > >--- >Laurette Cisneros >The Database Group >(510) 420-3137 >NextBus Information Systems, Inc. >www.nextbus.com >---------------------------------- >"Intelligence complicates. Wisdom simplifies." > -- Mason Cooley > > >---------------------------(end of broadcast)--------------------------- >TIP 2: you can get off all lists at once with the unregister command > (send "unregister YourEmailAddressHere" to majordomo@postgresql.org) > > >
В списке pgsql-jdbc по дате отправления: