我有一个在数据库中创建报价的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() ;
}这将导致“datetime或interval中的非数字字符”。异常。
我假设这是因为字符串"current + ...“(当直接对db运行时,这是很好的),有没有一种方法可以将它设置为不是字符串,以便它将被识别为当前时间命令?
发布于 2013-08-14 20:35:37
尝尝这个
long now = System.currentTimeMillis();
...
callableStatement.setTimestamp("offerStartTime", new Timestamp(now + 5 * 1000));
callableStatement.setTimestamp("offerEndTime", new Timestamp(now + 24 * 3600 * 1000)); https://stackoverflow.com/questions/18231751
复制相似问题