请问怎么转换这句SQL语句啊?
来源:百度知道 编辑:UC知道 时间:2024/06/14 14:04:56
你是java里使用的预处理占位符吧.!
最后面的
and(入库日期>=?)and(入库日期<=?)
不能这样写.会造成语法错误! 要用到具体的变量代替就行了.
要用连“+”接符来表示.。
改成:
and(入库日期>=变量1)and(入库日期<=变量2);
---补充
注意,"?"占位符, 不能代表int的.!只能代替varchar型的.。
如果是在Java中,你这个是一个用于PreparedStatement的拼SQL语句的String,那么你要对?号位置设置相应的值,如:
==============================================
Connection conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);
String sql="SELECT 入库单编号,入库日期,商品名称,型号,数量,进价,售价,供应商名称,仓库名称,是否已确认 FROM 入库单据 Where (商品名称 Like '%'+?+'%')and(型号 Like'%'+?+'%')and(仓库名称 Like '%'+?+'%')and(入库日期>=?)and(入库日期<=?) ";
PreparedStatement pstm = conn.preparedStatement(sql);
pstm.setString(1,"第一个?号位置处要设置的查询变量");
pstm.setString(2,"第二个?号位置处要设置的查询变量");
pstm.setString(3,"第三个?号位置处要设置的查询变量");
pstm.setDtae(4,第四个?号位置处要设置的查询变量,是一个日期Date类型);
ResultSet rs = pstm.execu