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);
+ }
}
/**