从Java中的时间戳转换为HSQLDB间隔

时间:2014-05-26 15:40:32

标签: timestamp hsqldb spring-jdbc

我正在使用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)))

1 个答案:

答案 0 :(得分:0)

您的列定义允许存储小于10000分钟的值。 TIMESTAMP不能转换为INTERVAL。您的查询必须计算两个TIMESTAMP值之间的差异,并且值必须非常接近,否则差异会溢出INTERVAL字段。

下面是一个例子

INSERT INTO sample_table(timeinterval) VALUES 
   (CURRENT_TIMESTAMP - CAST (? AS TIMESTAMP)) MINUTE(4) TO SECOND(6)