import java.sql.*; // Run with one argument: a JDBC url to connect to. public class TestTime { public static void main(String[] args) throws Exception { Class.forName("org.postgresql.Driver"); Connection c = DriverManager.getConnection(args[0]); // Works: PreparedStatement s = c.prepareStatement("SELECT LOCALTIMESTAMP - ?"); s.setObject(1, "00:00:00", Types.TIME); // Works: //PreparedStatement s = c.prepareStatement("SELECT LOCALTIMESTAMP - {t '00:00:00'}"); // Breaks: //PreparedStatement s = c.prepareStatement("SELECT LOCALTIMESTAMP - TIME ?"); //s.setObject(1, "00:00:00", Types.TIME); ResultSet rs = s.executeQuery(); rs.next(); System.err.println("returned " + rs.getObject(1)); rs.close(); s.close(); c.close(); } }