将LocalDateTime保留到DB2 TIMESTAMP列中

问题描述 投票:0回答:1

我一直试图将LocalDateTime持久化到DB2 10.5中的TIMESTAMP列中,但是失败,并显示以下错误:

[jcc] [1091] [10824] [4.26.14]无效的数据转换:参数实例2020-01-02T12:34:56对于请求的转换无效。错误代码= -4461,SQLSTATE = 42815

我正在使用实现JDBC规范4.1的IBM JDBC驱动程序:“用于JDBC和SQLJ 4.26.14的JDBC驱动程序IBM数据服务器驱动程序。

表定义为:

create table t1 (
  id int,
  a timestamp
);

Java代码为:

LocalDateTime dt = LocalDateTime.of(2020, 1, 2, 12, 34, 56);
PreparedStatement ps = conn.prepareStatement(
  "insert into t1 (id, a) values (?, ?)"
);
int id = 1;
ps.setInt(1, id);
ps.setObject(2, dt); // fails here
ps.execute();

我可以看到它甚至没有涉及到ps.execute()方法。我已经读过JDBC 4.2驱动程序可以解决此问题,但在任何地方都找不到。

java jdbc db2
1个回答
0
投票

使用setTimestamp(...)将代码更改为使用setTimestamp(...)

Timestamp.valueOf(LocalDateTime dateTime)
© www.soinside.com 2019 - 2024. All rights reserved.