Usuário com melhor resposta
select entre duas datas

Pergunta
-
boa tarde pessoal
eu estou a implementar uma consulta entre datas mas ele mistura os meses e anos ou seja: se eu pesquisar 01/01/2017 á 15/01/2017 ele tras de 01 á 15 de todos os meses e ano, quando devia trazer somente do mês e ano digitado, segue o código
Private Sub PConsultasDATA2()
Using con As OleDbConnection = getConnection()
Try
con.Open()
Dim sql As String
sql = "Select CodigoBancoHoras2, 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
End Sub- Editado Arlindo António quarta-feira, 26 de abril de 2017 18:46
Respostas
-
Boa tarde Arlindo António,
Seu está no fato de usar string como data.
Use o exemplo abaixo para uma utilização correta desses valores
Dim dtDate1 as DateTime = DateTime.Parse(date1.text) Dim dtDate2 as DateTime = DateTime.Parse(date2.text) Dim cmd1 As OleDbCommand = New OleDbCommand("SELECT * from stockitems where stdate Between #" & _ dtDate1.ToString("MM/dd/yyyy") & "# And #" & _ dtDate2.ToString("MM/dd/yyyy") & "#",con)
Att., Roberto Alves
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.- Marcado como Resposta Guilherme Macedo SModerator quinta-feira, 25 de maio de 2017 16:33
Todas as Respostas
-
-
Boa tarde Arlindo António,
Seu está no fato de usar string como data.
Use o exemplo abaixo para uma utilização correta desses valores
Dim dtDate1 as DateTime = DateTime.Parse(date1.text) Dim dtDate2 as DateTime = DateTime.Parse(date2.text) Dim cmd1 As OleDbCommand = New OleDbCommand("SELECT * from stockitems where stdate Between #" & _ dtDate1.ToString("MM/dd/yyyy") & "# And #" & _ dtDate2.ToString("MM/dd/yyyy") & "#",con)
Att., Roberto Alves
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.- Marcado como Resposta Guilherme Macedo SModerator quinta-feira, 25 de maio de 2017 16:33
-
Bom dia,
Por falta de retorno esta thread esta encerrada !
Por gentileza, caso necessário abra uma nova thread.
Atenciosamente,
Guilherme Macedo S
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
TechNet 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.