表的结构
CREATE TABLE `xiaoshoudan` (
  `xiaoshoudanhao` varchar(255) NOT NULL,
  `date` date default NULL,
  `kehu_ID` int(11) default NULL,
  `user_ID` int(11) default NULL,
  `num` int(11) NOT NULL default '1',
  `totalPrice` float default NULL,
  PRIMARY KEY  (`xiaoshoudanhao`),
  KEY `FK77BCFE97148826CC` (`kehu_ID`),
  KEY `FK77BCFE973D43702C` (`user_ID`),
  CONSTRAINT `FK77BCFE97148826CC` FOREIGN KEY (`kehu_ID`) REFERENCES `kehu` (`ID`),
  CONSTRAINT `FK77BCFE973D43702C` FOREIGN KEY (`user_ID`) REFERENCES `user` (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
从数据库查询一个时间段的记录代码
//按时间段查询public ResultSet getByShiJianDuan(String dateFirst,String dateLast){conn=new GetConn().getConn();
String sql="select xiaoshoudan.*, xiaoshoudan_shangping.* from xiaoshoudan,xiaoshoudan_shangping where " +
"XiaoShouDan_xiaoshoudanhao=xiaoshoudanhao and date between SELECT DATE_SUB('"+dateFirst+"', INTERVAL 1 DAY) and SELECT DATE_SUB('"+dateLast+"', INTERVAL 1 DAY) ";
try {
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return rs;
}dateFirst dateLast 是一个日期型的字符串,比如“2008-02-13”这种形式的,要怎么改上面的sql语句才能得到正确的结果
希望知道的人帮我解决一下

解决方案 »

  1.   

    select xiaoshoudan.*, xiaoshoudan_shangping.* from xiaoshoudan,xiaoshoudan_shangping where XiaoShouDan_xiaoshoudanhao=xiaoshoudanhao and date between DATE_SUB('"+dateFirst+"', INTERVAL 1 DAY) and DATE_SUB('"+dateLast+"', INTERVAL 1 DAY)
      

  2.   

    程序调试中检查一下变量 sql 的内容是什么。
      

  3.   

    SQL中的内容是什么,显示出来看看
    String sql="select xiaoshoudan.*, xiaoshoudan_shangping.* from xiaoshoudan,xiaoshoudan_shangping where " +
    "XiaoShouDan_xiaoshoudanhao=xiaoshoudanhao and date between DATE_SUB('"+dateFirst+"', INTERVAL 1 DAY) and DATE_SUB('"+dateLast+"', INTERVAL 1 DAY) ";