2014-03-06 13 views
6

Ich habe eine Tabelle in PostgreSQL (9.3) mit daterange Feldtyp.Einfügen "Datumsbereich" Feld Wert in PostgreSQL Tabelle über JDBC

Ich kann dieses Feld wie ein String mit JDBC auswählen, aber ich kann es nicht in einer Tabelle einfügen.

Was ich habe versucht:

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

und ich bekam:

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 

Hat jemand eine Lösung für das Einfügen daterange? Was stm.setXXX soll ich verwenden? Oder vielleicht kann ich das nicht, weil JDBC Driver keine Datumsbereichsunterstützung hat ... Vielleicht gibt es eine dritte Lösung?

Vielen Dank.

P.S.

My PostgreSQL JDBC Driver:

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

Antwort

8

Verwendung:

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