Resultset Não Retorna uma Data

1 resposta Resolvido
java
Alyesson

Olá,

O código abaixo pega o intervalo de duas datas minhas e procura no banco (no banco está como Date) e as variáveis são do tipo Date tmbm, porém quando pesquiso esse intervalo ele acha as datas que quero, porém ele não ta me retornando a primeira data, ele mostra a partir da segunda data do intervalo que to procurando:

conecta_RelatAlmox = new ConexaoBD();
conecta_RelatAlmox.conecta();

String data_De = dataDe.getText();
    String data_Ate = dataAte.getText();
    
    String[] DateDe = data_De.split("-");
    String[] DateAte = data_Ate.split("-");
    
    LocalDate DataDe = LocalDate.of(Integer.parseInt(DateDe[2]), Integer.parseInt(DateDe[1]), Integer.parseInt(DateDe[0]));
    LocalDate DataAte = LocalDate.of(Integer.parseInt(DateAte[2]), Integer.parseInt(DateAte[1]), Integer.parseInt(DateAte[0]));
    
    String sql= "select * from almox_requi_materiais where data between '"+DataDe+"' and '"+DataAte+"'"; 
      // o SQL roda uma data do tipo yyyy-MM-dd

  try
  {
      pst=conecta_RelatAlmox.conexao.prepareStatement(sql);
      conecta_RelatAlmox.resultset= pst.executeQuery();
      
      conecta_RelatAlmox.resultset.next();

    // contando quantos itens foi achado na tabela
Table_Resumo.getColumnModel().getColumn(0).setPreferredWidth(15);
Table_Resumo.getColumnModel().getColumn(1).setPreferredWidth(15);
Table_Resumo.getColumnModel().getColumn(2).setPreferredWidth(150);
Table_Resumo.getColumnModel().getColumn(3).setPreferredWidth(15);
    
    DefaultTableModel modelo = (DefaultTableModel)Table_Resumo.getModel();
 modelo.setNumRows(0);
 
 try{

    while (conecta_RelatAlmox.resultset.next())
        modelo.addRow(new Object[]{
            conecta_RelatAlmox.resultset.getInt("num_requisicao"),
            data_formato.format(conecta_RelatAlmox.resultset.getDate("data")),
            conecta_RelatAlmox.resultset.getString("retirado_por"),
            conecta_RelatAlmox.resultset.getInt("centroCusto")
            });
    
            // mostra a quantidade total
               String sql2 = "select count(*) from almox_requi_materiais where data between '"+DataDe+"' and '"+DataAte+"'";
                    conecta_RelatAlmox.executeSQL(sql2);
                    while(conecta_RelatAlmox.resultset.next()){
                       quantidade.setText(""+conecta_RelatAlmox.resultset.getInt("COUNT(*)"));                              
                      }
                    conecta_RelatAlmox.resultset.close();
 }catch(SQLException erro){
 JOptionPane.showMessageDialog(null," Erro ao listar as requisições, tente novamente" + erro);
 }

  }catch(SQLException erro){}

Por exemplo, se eu procurar as datas entre 18/10/2019 ate 22/10/2019 ele vai me retornar o seguinte:

19/10/2019
20/10/2019
21/10/2019
22/10/2019

Ele deveria mostrar do dia 18/10/2019 tmbm… Não consigo achar o erro de lógica.

1 Resposta

Alyesson
Solucao aceita

Apenas para fechar o tópico,

Achei o erro:

try

{

pst=conecta_RelatAlmox.conexao.prepareStatement(sql);

conecta_RelatAlmox.resultset= pst.executeQuery();
conecta_RelatAlmox.resultset.next(); --------------> é  remover esse resultset.

// contando quantos itens foi achado na tabela

Table_Resumo.getColumnModel().getColumn(0).setPreferredWidth(15);

Criado 23 de outubro de 2019
Ultima resposta 23 de out. de 2019
Respostas 1
Participantes 1