Re: Bad value for type date
От | Oliver Jowett |
---|---|
Тема | Re: Bad value for type date |
Дата | |
Msg-id | 43072BE0.9000306@opencloud.com обсуждение исходный текст |
Ответ на | Bad value for type date (Prasanth <dbadmin@nqadmin.com>) |
Ответы |
Re: Bad value for type date
|
Список | pgsql-jdbc |
Prasanth wrote: > Below is a small program to test the JDBC date issue I have having. > > I am able to set the date "2/1/10000". But it fails to retrieve it. > > If it is invalid date then it should not even update the database right? I can't reproduce this; the attached testcase produces this against my 8.0 install: Inserting date: 10000-02-01 AD +1300 Got date: 10000-02-01 AD +1300 Got date: 10000-02-01 AD +1300 I get this using both the -310 driver and a build from CVS HEAD. You'll need to give us a compilable testcase that shows the problem to take this any further. The code you provided originally doesn't compile out-of-the-box, is missing schema information, and has a syntactically incorrect query.. It'd also help if you can reproduce your problem without involving a RowSet implementation. -O import java.sql.*; import java.util.Calendar; public class TestDate2 { public static void main(String[] args) throws Exception { Class.forName("org.postgresql.Driver"); Connection conn = DriverManager.getConnection(args[0]); Statement stmt = conn.createStatement(); try { stmt.executeUpdate("DROP TABLE testdate2"); } catch (SQLException e) {} stmt.executeUpdate("CREATE TABLE testdate2(d date)"); stmt.executeUpdate("INSERT INTO testdate2(d) VALUES ('10000/02/01')"); PreparedStatement ps = conn.prepareStatement("INSERT INTO testdate2(d) VALUES (?)"); Calendar c = Calendar.getInstance(); c.set(Calendar.MONTH, 1); c.set(Calendar.DATE, 1); c.set(Calendar.YEAR, 10000); Date d = new Date(c.getTimeInMillis()); java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd G Z"); System.out.println("Inserting date: " + sdf.format(d)); ps.setDate(1, d); ps.executeUpdate(); ResultSet rs = stmt.executeQuery("SELECT d FROM testdate2"); while (rs.next()) { d = rs.getDate(1); System.out.println("Got date: " + sdf.format(d)); } rs.close(); stmt.close(); conn.close(); } }
В списке pgsql-jdbc по дате отправления: