我有一个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运行时很好),有没有办法可以将其设置为非字符串,以便识别它作为当前时间命令?
答案 0 :(得分:0)
试试这个
long now = System.currentTimeMillis();
...
callableStatement.setTimestamp("offerStartTime", new Timestamp(now + 5 * 1000));
callableStatement.setTimestamp("offerEndTime", new Timestamp(now + 24 * 3600 * 1000));