Java 未在指定的日期范围内获取Jasper报告

Java 未在指定的日期范围内获取Jasper报告,java,mysql,jasper-reports,Java,Mysql,Jasper Reports,此代码或查询中是否存在语法错误,因为我没有获得所需的报告?我已经用JDatechoosr创建了一个JFrame。当我选择日期并单击“查看报告”时,当我知道指定日期范围内有数据时,它会给我一个空报告。我正在使用MYSQL数据库和Netbeans。请帮帮我 try{ JasperDesign jd = JRXmlLoader.load("Purchase.jrxml"); String sql = "select * from purchase where purch

此代码或查询中是否存在语法错误,因为我没有获得所需的报告?我已经用JDatechoosr创建了一个JFrame。当我选择日期并单击“查看报告”时,当我知道指定日期范围内有数据时,它会给我一个空报告。我正在使用MYSQL数据库和Netbeans。请帮帮我

try{
        JasperDesign jd = JRXmlLoader.load("Purchase.jrxml");
        String sql = "select * from purchase where purchase_date between "
                + "'"+DateChooser_frm.getDate().toString()+"' and'"+DateChooser_to.getDate().toString()+"'";
        JRDesignQuery query = new JRDesignQuery();
        query.setText(sql);
        jd.setQuery(query);
        JasperReport jr = JasperCompileManager.compileReport(jd);
        JasperPrint jp = JasperFillManager.fillReport(jr, null,con);
        JasperViewer.viewReport(jp,false);
    }
    catch(JRException ex){
        JOptionPane.showMessageDialog(null, ex);
    }
    catch(Exception ex){
        JOptionPane.showMessageDialog(null, ex);
    }

您应该首先考虑Mysql的默认日期格式是YYYY-MM-DD HH:MM:SS。因此,如果您没有以这种格式提供日期,您将无法从数据库中获得任何信息。首先设置日期格式以匹配mysql的格式,然后尝试执行查询。您可以使用“SimpleDataFormat”来执行此操作。

打印
sql
命令,然后从命令行MySql命令手动调用它。您将看到它是否达到了预期效果。因此,您会发现这是Java问题还是SQL命令无效的问题。@Honza Zidek我怀疑这是mysql默认日期格式的问题。因为我有另一个查询,它获取并显示指定凭证号的报告,并且工作正常。完全正确!那么,MYSQL命令行实用程序不起作用吗?我也会这么想!因此,这不是一个与Java相关的问题,而是一个与SQL相关的问题,您应该从文章中删除所有Java代码。