Re: getDate() and getTime() fails with columns of type 'TimeStamp'
От | Bruce Momjian |
---|---|
Тема | Re: getDate() and getTime() fails with columns of type 'TimeStamp' |
Дата | |
Msg-id | 200105301635.f4UGZfo08370@candle.pha.pa.us обсуждение исходный текст |
Ответ на | getDate() and getTime() fails with columns of type 'TimeStamp' (Michael Stephenson <mstephenson@tirin.openworld.co.uk>) |
Список | pgsql-jdbc |
I just applied this patch sent in by someone else to the current CVS tree. > > In org.postgresql.jdbc2.ResultSet, both getDate() and getTime() fail on > columns of type 'timestamp', which is against the jdbc spec, patch below > fixes it. > > Michael Stephenson mstephenson@openworld.co.uk > Developer - Web Applications - Open World > Tel: +44 1225 444 950 Fax: +44 1225 336 738 > > > > --- ResultSet.java.old Wed May 30 16:32:48 2001 > +++ ResultSet.java Wed May 30 16:41:33 2001 > @@ -423,6 +423,8 @@ > String s = getString(columnIndex); > if(s==null) > return null; > + if (s.length() > 10) > + return new java.sql.Date(getTimeStamp(columnIndex).getTime()) > > return java.sql.Date.valueOf(s); > } > @@ -441,6 +443,8 @@ > > if(s==null) > return null; // SQL NULL > + if (s.length() > 8) > + return new java.sql.Time(getTimeStamp(columnIndex).getTime()); > > return java.sql.Time.valueOf(s); > } > > > ---------------------------(end of broadcast)--------------------------- > TIP 5: Have you checked our extensive FAQ? > > http://www.postgresql.org/users-lounge/docs/faq.html > -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026 --- src/interfaces/jdbc/org/postgresql/jdbc1/ResultSet.java~ Fri Feb 23 19:12:23 2001 +++ src/interfaces/jdbc/org/postgresql/jdbc1/ResultSet.java Wed May 9 04:31:11 2001 @@ -423,8 +423,13 @@ String s = getString(columnIndex); if(s==null) return null; - - return java.sql.Date.valueOf(s); + // length == 10: SQL Date + // length > 10: SQL Timestamp, assumes PGDATESTYLE=ISO + try { + return java.sql.Date.valueOf((s.length() == 10) ? s : s.substring(0,10)); + } catch (NumberFormatException e) { + throw new PSQLException("postgresql.res.baddate", s); + } } /** @@ -441,8 +446,13 @@ if(s==null) return null; // SQL NULL - - return java.sql.Time.valueOf(s); + // 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); + } } /**
В списке pgsql-jdbc по дате отправления: