当前位置: 首页 > 知识库问答 >
问题:

它不会在表中显示过滤后的日期范围

郗阳德
2023-03-14

我想在MySQL中获取这两个日期的数据,并只显示范围,但是即使它是空的,也不会显示任何内容。此外,即使我将简单日期格式更改为MM/dd/yyyy,即使我在数据库中有2行数据,表也只显示一行和日期

这是我的代码

private void table_stocks(String date_from, String date_to)  {
    try { 
        int table;
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            con = DriverManager.getConnection(url, username, password);
            
            if(date_from.equals("") || date_to.equals("")){
                pst = con.prepareStatement("SELECT `sales_number`, `date`, `amount_due` FROM `dnk_database`.`sales`;");
            }
            else{
                pst = con.prepareStatement("SELECT `sales_number`, `date`, `amount_due`, SUM(`amount_due`) AS `total_sales` FROM `dnk_database`.`sales` WHERE `date` BETWEEN ? AND ?;");
                pst.setString(1, date_from);
                pst.setString(2, date_to);
            }
            
            ResultSet rs = pst.executeQuery();
     
            
            ResultSetMetaData rsd = rs.getMetaData();
            table = rsd.getColumnCount();
            
            DefaultTableModel load = (DefaultTableModel)jTable_salesValue.getModel();
            load.setRowCount(0);
            
            while(rs.next()) {
                Vector v2 = new Vector();
                
                for(int i = 1; i <= table; i++){
                    v2.add(rs.getString("sales_number"));
                    v2.add(rs.getString("date"));
                    v2.add(rs.getString("amount_due"));
                }
                load.addRow(v2);
            }
            
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(Add_Items.class.getName()).log(Level.SEVERE, null, ex);
        }
    } catch (SQLException ex) {
        Logger.getLogger(Add_Items.class.getName()).log(Level.SEVERE, null, ex);
    }
}

另外,想要显示从我的SQL到文本字段的到期金额列的总和,我不知道该将此代码放在哪里

if (rs.next()==true) {
    String sum_total = rs.getString("total_sales");
    jTextField_totalSales.setText(sum_total);
} 

共有1个答案

苏鸿志
2023-03-14

可以在while循环之前将总和累积到变量,我假设您使用的是整数数据类型,然后在循环内对值求和。完成while循环后,在文本字段中显示

int sumTotal = 0;
while(rs.next()) {
    Vector v2 = new Vector();
    for(int i = 1; i <= table; i++){
        v2.add(rs.getString("sales_number"));
        v2.add(rs.getString("date"));
        v2.add(rs.getString("amount_due"));
        sumTotal += rs.getString("amount_due") == null? 0 : Integer.parseInt(rs.getString("amount_due"));
        }
        load.addRow(v2);
        jTextField_totalSales.setText(sumTotal);
}
 类似资料:
  • 问题内容: 我正在使用日期输入字段,并使用Angular在我的ui中格式化所选日期。但是格式化日期总是比所选日期少1天。为什么会这样,我该如何解决? HTML: JS: 我有一个小提琴来演示这个问题:http : //jsfiddle.net/wittersworld/uY3s9/ 编辑: 我用一个有效的解决方案更新了小提琴:http : //jsfiddle.net/wittersworld/u

  • 我的数据确实显示在console.log中,但实际上没有显示在表中,我在这里做错了什么?

  • 问题内容: 我正在尝试搜索日期范围内的日期范围内的所有项目,但失败(不返回任何结果) 查询: 映射: 结果是: 通过一个带数字值的整数字段(“ cards”)的范围过滤的同一查询工作正常。将日期更改为非常早的开始(1900-01-01 00:00:00)也不会显示任何结果。 我究竟做错了什么? 顺便说一句,我知道我在映射中启用了_timestamp,但这不是我要过滤的字段。 问题答案: 似乎对我来

  • 问题内容: 我正在使用Elasticsearch 6.6,尝试根据在日期范围内传递给查询(Bool)的多个值(email_address)提取多个结果/记录。例如:我想根据他们的email_address(annie@test.com,charles@test.com,heman@test.com)以及时期(即project_date(2019-01-01))提取有关少数雇员的信息。 我确实使用了

  • 问题内容: 我正在尝试通过键入日期范围来过滤包含时间戳的列表 例如: JSFIDDLE html javascript 我希望能够用值填充“发件人”字段:27-05-2010 并且“ To”字段的值为:29-07-2015 并仅获取该范围内的记录。 (示例中的第一条记录)。 谢谢分配阿维 问题答案: 您可以创建一个自定义过滤器来实现此目的。 JSFIDDLE html javascript 此外,

  • 我正在使用弹性搜索。我以前从未使用过的网络NEST客户端。我想做的是在得分前按日期范围过滤结果。 我使用对象初始值设定项语法,因为它最适合我。 我已经完成了我想要的: 这给了我一个JSON请求,就像我期望的那样: 但留档过滤查询说"弃用在2.0.0-beta1.改为使用bool查询,查询的必须子句和筛选器子句”。 因为这是我发现的唯一包含过滤器的方法,有没有更好的方法来使用嵌套对象初始值设定项语法