谁帮我解决一下啊,这条sql语句在往mysql数据库中执行时出错。 单独直接在数据库中是对的。

publicintgetCountIn(){intcount=0;Stringsql="selectsum(inOutMoney)numfrominOutInfowher... public int getCountIn() {
int count=0;
String sql="select sum(inOutMoney) num from inOutInfo where " +
"between date_add(date_add(last_day(?),interval 1 day)," +
"interval -1 month) and last_day(?) and info='收入'";
try {
Connection conn=DbpoolUtil.getConnection();
PreparedStatement stmt=conn.prepareStatement(sql);
Date d1=new Date(datec);
stmt.setDate(1, d1);
stmt.setDate(2, d1);
ResultSet rs=stmt.executeQuery();
while(rs.next()){
count=rs.getInt("num");
}
DbpoolUtil.closeConnection();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return count;

报错为:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'between date_add(date_add(last_day('2013-04-06'),interval 1 day),interval -1 mon' at line 1

直接执行语句为:
select sum(inOutMoney) num from inOutInfo where inOutDate between date_add(
date_add(last_day('2013-04-06'),interval 1 day),
interval -1 month) and last_day('2013-04-06') and info='支出';
展开
 我来答
解甲将军
2013-04-06 · TA获得超过5092个赞
知道大有可为答主
回答量:1.3万
采纳率:0%
帮助的人:3393万
展开全部
如果数据库可以远程连接,您可以使用该工具来连接直接导入
如果不是,有两种情况:一种通用的虚拟机将提供数据库管理工具,工具的使用。
如果你没有,你可以使用在JSP页面中的JDBC连接数据库,你可以使用文件输入流文件读入到内存中,然后可以实施良好的数据库连接宣读的声明
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-04-06
展开全部
String sql="select sum(inOutMoney) num from inOutInfo where " +

目测这里少了一个 inOutDate. 导致实际执行的 sql 是 。。。 where between 。。。

"between date_add(date_add(last_day(?),interval 1 day)," +
"interval -1 month) and last_day(?) and info='收入'";
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式