David Goodenough wrote:
>
> I have an SQL SELECT which contains an expressions of the form:-
>
> WHERE created < CURRENT_TIMESTAMP - ?
>
> where created is a TIMESTAMP field. As a parameter I want to pass
> an interval, so I used:-
>
> PGInterval interval = new PGInterval( intervalPeriod);
> stmt.setObject( 1, interval);
>
> but Postgresql objects with:-
>
> org.postgresql.util.PSQLException: Can't infer the SQL type
> to use for an instance of org.postgresql.util.PGInterval.
> Use setObject() with an explicit Types value to specify
> the type to use.
Strange - here (postgresql-8.2-505.jdbc3.jar with JDK 1.5.0_12-b04)
the following code runs fine:
Connection conn = DriverManager.getConnection();
PreparedStatement stmt = conn.prepareStatement(
"SELECT current_timestamp - ?");
stmt.setObject(1, new PGInterval("2 days"));
ResultSet rs = stmt.executeQuery();
Yours,
Laurenz Albe