JDatechooser在列之间搜索时无法正常工作

时间:2016-11-19 07:21:13

标签: java

我遇到了jdatechooser的问题,而我曾经通过jdatechooser搜索列之间的数据。问题是当我搜索数据时,它显示正确的数据,但它也显示了我不想要的数据。以下是我的错误消息图片。

Error

wrong-output

你可以看到我想在11月11日到7月7日期间搜索数据,但它也显示了最后两笔交易。  以下是我的代码

private void okActionPerformed(java.awt.event.ActionEvent evt) {                                   
    // TODO add your handling code here:
    try
    {
        String sql="select * from Bill_Ledger where Date >=(?) and Date <=(?)";
        pst=conn.prepareStatement(sql);
        pst.setString(1,((JTextField)fromdate.getDateEditor().getUiComponent()).getText());
        pst.setString(2,((JTextField)todate.getDateEditor().getUiComponent()).getText());
        rs=pst.executeQuery();


        medic_table.setModel(DbUtils.resultSetToTableModel(rs));


    }
    catch(Exception e)
    {
        JOptionPane.showMessageDialog(null,e);
    }
    finally
    {
        try
        {
            pst.close();
        }
        catch(Exception e)
        {
            JOptionPane.showMessageDialog(null,e);
        }
    }
}      

请帮帮我。

1 个答案:

答案 0 :(得分:0)

如果我是你,我会做的是首先在控制台上打印出你要放入SQL的日期字符串,如下所示:

System.out.println("From date: "+pst.setString(1,((JTextField)fromdate.getDateEditor().getUiComponent()).getText()));

System.out.println("To date: "+pst.setString(2,((JTextField)todate.getDateEditor().getUiComponent()).getText());

以后,我会尝试在外部工具(如mysql workbench或简单的CLI)中手动执行给定的sql,并检查我是否得到了所需的结果。

select * from Bill_Ledger where Date >=fromDate and Date <=toDate

我现在最好的选择是,日期字符串格式不正确(在数据库术语中)。这有点难找,因为mysql不会抱怨糟糕的日期格式。

查询的正确格式应与'yyyy-MM-dd'

类似