Java SQL CallableStatement - 使用“current + interval(5)”作为参数

时间:2013-08-14 12:27:50

标签: java sql informix

我有一个callablestatement,可以在db中创建一个offer。该优惠将在未来开始,实际上是5分钟。

我的代码目前看起来像

String sqlCall = "{call pInsOffer ( ?, ?, ?, ? )}" ;
try (CallableStatement callableStatement = con.prepareCall()) {
  callableStatement.setString("offerName", "My Offer") ;
  callableStatement.setString("offerCashBack", "10.00" ) ; 
  callableStatement.setString("offerStartTime", "current + interval(5) second to second" ); 
  callableStatement.setString("offerEndTime", "current + interval(1) day to day") ;
  ResultSet rs = callableStatement.executeQuery() ;
}

这导致“日期时间或间隔中的非数字字符”。例外。

我认为这是因为字符串“当前+ ...”(直接对db运行时很好),有没有办法可以将其设置为非字符串,以便识别它作为当前时间命令?

1 个答案:

答案 0 :(得分:0)

试试这个

long now = System.currentTimeMillis();
...
callableStatement.setTimestamp("offerStartTime", new Timestamp(now + 5 * 1000)); 
callableStatement.setTimestamp("offerEndTime", new Timestamp(now + 24 * 3600 * 1000));