none
pesquisa entre DUAS datas RRS feed

  • Pergunta

  • olá pessoal, estou a implementa uma consulta entre duas data, porem ele pega os dias em orde crescente e vai juntados os meses, quando eu quero somente de um mes especifico ele não pega. ou seja ele filtra somente dias e não o mês e ano , preciso de ajuda.

    segue o código

      Using con As OleDbConnection = getConnection()
                Try
                    con.Open()
                    Dim sql As String
                    sql = "Select NOME,TIPO,DATA,HORA,JUSTIFICATIVA "
                    sql += "FROM Tab_Bhoras2 "
                    sql += " WHERE (DATA BETWEEN  #" & DataInicio.Text & "# AND #" & DataFinal.Text & "#)"
                    sql += "ORDER BY DATA"
                    Dim cmd As OleDbCommand = New OleDbCommand(sql, con)
                    Dim da As OleDbDataAdapter = New OleDbDataAdapter(cmd)
                    Dim dt As DataTable = New DataTable
                    da.Fill(dt)
                    dgvRegistros.DataSource = dt
                    '  PFormataDataGridView()
                Catch ex As Exception
                    MsgBox(ex.Message)
                Finally
                    con.Close()
                End Try
            End Using


    • Editado Arlindo António segunda-feira, 10 de abril de 2017 14:35 nenhuma resposta
    sexta-feira, 7 de abril de 2017 18:18

Respostas

  • Boa tarde, eu tenho uma consulta parecida e que funciona perfeitamente.

    Somente o final da consulta que é o que interessa.

       
                            "WHERE g.idsubproduto=pp.idsubproduto " +
                            "AND p.idproduto=g.idsubproduto " +
                            "AND pt.idproduto=p.idproduto " +
                            "AND(date(pp.dtalteracaovar)) >=  @dtinicial " +
                            "AND(date(pp.dtalteracaovar)) <=  @dtfinal " +
                            "AND pt.uf='MS' " +
                            "ORDER BY (date(pp.dtalteracaovar))";

    O tratamento dos parâmetros :

     cmd.Parameters.Add("@dtInicial", DB2Type.Date).Value = Data1.ToString("yyyy/MM/dd");
                cmd.Parameters.Add("@dtFinal", DB2Type.Date).Value = Data2.ToString("yyyy/MM/dd");

    quinta-feira, 13 de abril de 2017 19:34

Todas as Respostas

  • Bom dia pessoal, alguém poderia me dar uma força, estou a precisar com urgência resolver essa questão

    ele faz pesquisa ordena os dias certinho, só que junta os meses, não consigo pesquisar a data de um mês espesifico

     
    segunda-feira, 10 de abril de 2017 12:15
  • Bom dia Arlindo,

    Você está utilizando LINQ para fazer essa pesquisa?

    Atenciosamente,


    Robson William Silva

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    terça-feira, 11 de abril de 2017 13:36
    Moderador
  • bom dia, não uso o  LINQ, ele pesquisa somente o dia e não filtra o mês

    quarta-feira, 12 de abril de 2017 11:23
  • Tenta conforme abaixo.


      con.Open()
                    Dim sql As StringBuilder
                    sql.Append("Select NOME,TIPO,DATA,HORA,JUSTIFICATIVA ")
                    sql.Append("FROM Tab_Bhoras2 ")
                    sql.Append("WHERE DATA BETWEEN  @DATAINICIO AND @DATAFIM ")
                    sql.Append("ORDER BY DATA")

                    Dim cmd As OleDbCommand = New OleDbCommand(sql.ToString(), con)
                    Dim da As OleDbDataAdapter = New OleDbDataAdapter(cmd)
                    Dim dt As DataTable = New DataTable

                    Dim dataInicial As New OleDbParameter("@DATAINICIO", Convert.ToDateTime(DataInicio.Text))
                    Dim dataFim As New OleDbParameter("@DATAFIM", Convert.ToDateTime(DataFinal.Text))

                    cmd.Parameters.Add(dataInicial)

                    da.Fill(dt)
                    dgvRegistros.DataSource = dt
                    '  PFormataDataGridView()

                 
    quarta-feira, 12 de abril de 2017 15:26
  • oi boa tarde, eu teste esse código mas mesmo assim não funcionou
    quinta-feira, 13 de abril de 2017 14:52
  • Boa tarde, eu tenho uma consulta parecida e que funciona perfeitamente.

    Somente o final da consulta que é o que interessa.

       
                            "WHERE g.idsubproduto=pp.idsubproduto " +
                            "AND p.idproduto=g.idsubproduto " +
                            "AND pt.idproduto=p.idproduto " +
                            "AND(date(pp.dtalteracaovar)) >=  @dtinicial " +
                            "AND(date(pp.dtalteracaovar)) <=  @dtfinal " +
                            "AND pt.uf='MS' " +
                            "ORDER BY (date(pp.dtalteracaovar))";

    O tratamento dos parâmetros :

     cmd.Parameters.Add("@dtInicial", DB2Type.Date).Value = Data1.ToString("yyyy/MM/dd");
                cmd.Parameters.Add("@dtFinal", DB2Type.Date).Value = Data2.ToString("yyyy/MM/dd");

    quinta-feira, 13 de abril de 2017 19:34