From: | Laurette Cisneros <laurette(at)nextbus(dot)com> |
---|---|
To: | pgsql-jdbc(at)postgresql(dot)org |
Subject: | jdbc problem with time |
Date: | 2002-07-09 20:09:27 |
Message-ID: | Pine.LNX.4.44.0207091305470.5606-100000@visor.corp.nextbus.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-jdbc |
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
From | Date | Subject | |
---|---|---|---|
Next Message | Barry Lind | 2002-07-09 20:15:35 | Re: jdbc problem with time |
Previous Message | Robert Treat | 2002-07-09 19:48:00 | DbVisualizer 3.0 |