我正在使用Spring / JDBC尝试将Java中的Timestamp对象插入HSQLDB。 我在表中有一列,其中sql类型为 INTERVAL MINUTE(4)TO SECOND(6)。
如何将时间戳插入HSQLDB,并将列标记为间隔? 事实上,我知道两个时间戳之间的差异会产生一个间隔类型,但我不确定在进行数据库查询之前是否需要转换它。
以下是我到目前为止的代码。
jdbcTemplate.update(SQLConstants.INSERT_OBJECT_SQL,
new Object[] { obj.getTimestamp()},
new int[] { Types.TIMESTAMP });
我的SQL查询是
INSERT INTO sample_table (timeinterval) VALUES (CAST (? AS INTERVAL MINUTE(4) TO SECOND(6)))
答案 0 :(得分:0)
您的列定义允许存储小于10000分钟的值。 TIMESTAMP不能转换为INTERVAL。您的查询必须计算两个TIMESTAMP值之间的差异,并且值必须非常接近,否则差异会溢出INTERVAL字段。
下面是一个例子
INSERT INTO sample_table(timeinterval) VALUES
(CURRENT_TIMESTAMP - CAST (? AS TIMESTAMP)) MINUTE(4) TO SECOND(6)