【问题标题】:Insert "daterange" field value into PostgreSQL table through JDBC通过 JDBC 将“daterange”字段值插入 PostgreSQL 表
【发布时间】:2014-04-08 17:19:35
【问题描述】:

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

我可以像使用 JDBC 的字符串一样选择这个字段,但我不能将它插入到表中。

我尝试过的:

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

我得到了:

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

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

谢谢。

附言

我的 PostgreSQL JDBC 驱动程序:

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

【问题讨论】:

    标签: java database postgresql jdbc date-range


    【解决方案1】:

    用途:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-30
      • 1970-01-01
      • 2018-03-27
      • 2011-08-06
      • 1970-01-01
      相关资源
      最近更新 更多