Java PreparedStatement 设置间隔
Java PreparedStatement set interval
sql 语句中 interval 的正确转义是什么?
目前我有以下代码转义 customerId 变量:
final String query = "delete from login_history where time < current_timestamp - '" + days + " days'::interval and customer_id = ?";
PreparedStatement preparedStatement = connection.prepareStatement(query);
preparedStatement.setInt(1, customerId);
int deleted = preparedStatement.executeUpdate();
不过我也想逃天.
将 "+ days +"
替换为 ?
,将 setInt
更改为 2 而不是 1 并添加
preparedStatement.setWhateverTypeDaysIs(1, days);
最好的解决方案是传递一个乘以固定间隔的int参数,例如
select * from foo where (time + ? * INTERVAL '1' DAY) > current_timestamp
您可以输入天数、小时数...
并且比 setInt
参数
您可以在 SQL 文本中使用 ?::interval
并像
一样使用 setString()
setString(1, "30 minutes")
sql 语句中 interval 的正确转义是什么?
目前我有以下代码转义 customerId 变量:
final String query = "delete from login_history where time < current_timestamp - '" + days + " days'::interval and customer_id = ?";
PreparedStatement preparedStatement = connection.prepareStatement(query);
preparedStatement.setInt(1, customerId);
int deleted = preparedStatement.executeUpdate();
不过我也想逃天.
将 "+ days +"
替换为 ?
,将 setInt
更改为 2 而不是 1 并添加
preparedStatement.setWhateverTypeDaysIs(1, days);
最好的解决方案是传递一个乘以固定间隔的int参数,例如
select * from foo where (time + ? * INTERVAL '1' DAY) > current_timestamp
您可以输入天数、小时数...
并且比 setInt
参数
您可以在 SQL 文本中使用 ?::interval
并像
setString(1, "30 minutes")