0

我有一个 callablestatement 在数据库中创建一个报价。提议是在未来开始,实际上在 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() ;
}

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

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

4

1 回答 1

0

尝试这个

long now = System.currentTimeMillis();
...
callableStatement.setTimestamp("offerStartTime", new Timestamp(now + 5 * 1000)); 
callableStatement.setTimestamp("offerEndTime", new Timestamp(now + 24 * 3600 * 1000)); 
于 2013-08-14T12:35:37.243 回答