/ / Inserte el valor del campo "daterange" en la tabla PostgreSQL a través de JDBC - java, database, postgresql, jdbc, intervalo de fechas

Inserte el valor del campo "daterange" en la tabla de PostgreSQL a través de JDBC - java, base de datos, postgresql, jdbc, date-range

Tengo una tabla en PostgreSQL (9.3) con rango de fechas Tipo de campo.

Puedo seleccionar este campo como una cadena con JDBC, pero no puedo insertarlo en una tabla.

Lo que he intentado:

PreparedStatement stm = conn.prepareStatement("insert into mytable (my_daterange_field) values (?)");
stm.setString(1, "[2014-01-02,2014-01-04]");
int i = stm.executeUpdate();

y obtuve

Exception in thread "main" org.postgresql.util.PSQLException: ERROR: column "my_daterange_field" is of type daterange but expression is of type character varying
Hint: You will need to rewrite or cast the expression.
Position: 168

¿Alguien tiene una solución para insertar daterange? ¿Qué stm.setXXX debo usar? O tal vez no pueda hacerlo porque el controlador JDBC no tiene soporte para daterange ... Tal vez hay una tercera solución?

Gracias.

PD

Mi controlador JDBC de PostgreSQL:

    <dependency>
<groupId>postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>8.4-701.jdbc4</version>
</dependency>

Respuestas

8 para la respuesta № 1

Utilizar:

insert into mytable (my_daterange_field) values (?::daterange)