/ / Fügen Sie den Feldwert "daterange" in die PostgreSQL-Tabelle über JDBC ein - java, Datenbank, postgresql, jdbc, Datumsbereich

Fügen Sie den Feldwert "Datumsbereich" über JDBC in die PostgreSQL-Tabelle ein - Java, Datenbank, PostgreSQL, JDBC, Datumsbereich

Ich habe eine Tabelle in PostgreSQL (9.3) mit Datumsbereich Feldtyp.

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

Was ich versucht habe:

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 habe:

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 zum Einfügen von Datumsangaben? Welches stm.setXXX soll ich verwenden? Oder vielleicht kann ich das nicht, weil der JDBC-Treiber keine Daterange-Unterstützung hat ... Vielleicht gibt es eine dritte Lösung?

Vielen Dank.

P.S.

Mein PostgreSQL-JDBC-Treiber:

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

Antworten:

8 für die Antwort № 1

Benutzen:

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