通过JDBC将"daterange"字段值插入PostgreSQL表

art*_*kov 6 java database postgresql jdbc date-range

我在PostgreSQL(9.3)中有一个带有daterange字段类型的表.

我可以像使用JDBC的String一样选择此字段,但我无法将其插入表中.

我尝试过的:

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

我得到了:

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
Run Code Online (Sandbox Code Playgroud)

有没有人有插入日期范围的解决方案?我应该使用什么stm.setXXX?或许我不能这样做,因为JDBC Driver没有日期范围的支持......也许有第三种解决方案?

谢谢.

PS

我的PostgreSQL JDBC驱动程序:

    <dependency>
      <groupId>postgresql</groupId>
      <artifactId>postgresql</artifactId>
      <version>8.4-701.jdbc4</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

Cra*_*ger 9

使用:

insert into mytable (my_daterange_field) values (?::daterange)
Run Code Online (Sandbox Code Playgroud)