*** org/postgresql/jdbc1/PreparedStatement.java_7.1b4 Mon Nov 26 08:26:59 2001 --- org/postgresql/jdbc1/PreparedStatement.java Tue Jan 15 15:12:01 2002 *************** *** 388,395 **** { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); df.setTimeZone(TimeZone.getTimeZone("GMT")); StringBuffer strBuf = new StringBuffer("'"); ! strBuf.append(df.format(x)).append('.').append(x.getNanos() / 10000000).append("+00'"); set(parameterIndex, strBuf.toString()); } } --- 388,411 ---- { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); df.setTimeZone(TimeZone.getTimeZone("GMT")); + + // Make decimal from nanos. + StringBuffer decimal = new StringBuffer(); + String nanos = String.valueOf(x.getNanos()); + final int max_nanos_length = 9; + for (int i = 0; i < max_nanos_length - nanos.length(); i++) + { + decimal.append('0'); + } + decimal.append(nanos); + if (! connection.haveMinimumServerVersion("7.2")) + { + // Because 7.1 include bug that "hh:mm:59.999" becomes "hh:mm:60.00". + decimal.setLength(2); + } + StringBuffer strBuf = new StringBuffer("'"); ! strBuf.append(df.format(x)).append('.').append(decimal).append("+00'"); set(parameterIndex, strBuf.toString()); } }