PESQUISAR DATA NO MYSQL COM VB
                    Ola pessoal tenho um sistema feito em vb 6.0 e uso o mysql 4.1.22 como banco de dados, e utilizo mySql Connector 3.51 para fazer a conexão to com um problema na hora de fazer pesquisas por data tipo assim quando eu informo uma data distante por exemplo [ô]01/08/2009[ô] a [ô]31/08/2009[ô] ele traz o resultado da pesquisa certinho agora por exemplo se eu quero uma unica data [ô]26/08/2009[ô] a [ô]26/08/2009[ô] ele não fala que o banco não encontrou resultado algum. Estou fazendo da seguinte maneira.
               Dim adores As New DBRecordset
    Dim indice As Integer
    Dim DataInicial As String
    Dim DataFinal As String
    If Not FormConsiste(Me) Then Exit Sub
    DataInicial = Me.Controls((FormControl.GetIndex([Ô]PesDatIni[Ô])))
    DataFinal = Me.Controls(FormControl.GetIndex([Ô]PesDatFim[Ô])).Text
    DataFinal = (Year(DataFinal) & [Ô]-[Ô] & Month(DataFinal) & [Ô]-[Ô] & Day(DataFinal))
    DataInicial = (Year(DataInicial) & [Ô]-[Ô] & Month(DataInicial) & [Ô]-[Ô] & Day(DataInicial))
    Dim Sql As String
    Sql = [Ô]SELECT * FROM Processos WHERE ProDatIni >= [ô][Ô] & Format(DataInicial, [Ô]YYYY-MM-DD HH:MM:SS[Ô]) & _
          [Ô][ô] OR ProDatFim <= [ô][Ô] & Format(DataFinal, [Ô]YYYY-MM-DD HH:MM:SS[Ô]) & [Ô][ô] AND ProSta = 1 Order by ProDatIni[Ô]
    adores.OpenRecordset DBCnx, Sql, CTForwardOnly, CLServer, LTReadOnly
    lstField(LstIdxPro).ListItems.Clear
    indice = 1
    If adores.EOF Then
        MsgAtt [Ô]Não foram encontrados processos neste periodo[Ô]
        Exit Sub
    Else
        Do While Not adores.EOF
            lstField(LstIdxPro).ListItems.Add , , adores.GetFieldValue([Ô]ProRec[Ô])
            lstField(LstIdxPro).ListItems.Item(indice).Tag = adores.GetFieldValue([Ô]ProCod[Ô])
            lstField(LstIdxPro).ListItems.Item(indice).SubItems(1) = adores.GetFieldValue([Ô]ProDatIni[Ô])
            lstField(LstIdxPro).ListItems.Item(indice).SubItems(2) = adores.GetFieldValue([Ô]ProDatFim[Ô])
            lstField(LstIdxPro).ListItems.Item(indice).SubItems(3) = Format(adores.GetFieldValue([Ô]ProPesPro[Ô]), [Ô]00000[Ô])
            lstField(LstIdxPro).ListItems.Item(indice).SubItems(4) = Format(adores.GetFieldValue([Ô]ProPesRea[Ô]), [Ô]00000[Ô])
            lstField(LstIdxPro).ListItems.Item(indice).SubItems(5) = adores.GetFieldValue([Ô]ProUsr[Ô])
            adores.MoveNext
            indice = indice + 1
        Loop
    End If
                
                    ja tentou algo parecido com isso?
select * from boleto where datavencimento between [ô]2009-09-10[ô] and [ô]2009-09-10
            select * from boleto where datavencimento between [ô]2009-09-10[ô] and [ô]2009-09-10
                    Nao mas são dois campos diferente funcionaria dataIncial e DataFinal
                
            
                    CJMCARDOSO vc ja verificou se no dia 26 vc tem registro na tabela boleto,
outra coisa vc tá colocando horas no select entao tera que ter um registro que consida data e hora para ele trazer o resultado verifica isso e tira a hora do select
                
            outra coisa vc tá colocando horas no select entao tera que ter um registro que consida data e hora para ele trazer o resultado verifica isso e tira a hora do select
                    Já tirei e tentei usar como o exemplo do que amigo me passou
                
            
                    Detalhe no Immediate quando vou depurar a query ele me traz assim tirei a  hora no formato
SELECT * FROM Processos WHERE ProDatIni >= [ô]2009-09-01[ô] and ProDatFim <= [ô]2009-09-03[ô] AND ProSta = 1 Order by ProDatIni
            SELECT * FROM Processos WHERE ProDatIni >= [ô]2009-09-01[ô] and ProDatFim <= [ô]2009-09-03[ô] AND ProSta = 1 Order by ProDatIni
                    realmente o problema está na sua query, vamos a duas opções
primeira
segunda maneira
teste ambas alterações
                
            primeira
Sql = [Ô]SELECT * FROM Processos WHERE (ProDatIni >= [ô][Ô] & Format(DataInicial, [Ô]YYYY-MM-DD HH:MM:SS[Ô]) & _
          [Ô][ô] and ProDatFim <= [ô][Ô] & Format(DataFinal, [Ô]YYYY-MM-DD HH:MM:SS[Ô]) & [Ô][ô] ) AND ProSta = 1 Order by ProDatIni[Ô]segunda maneira
Sql = [Ô]SELECT * FROM Processos WHERE (ProDatIni Between [ô][Ô] & Format(DataInicial, [Ô]YYYY-MM-DD HH:MM:SS[Ô]) & _
          [Ô][ô] and [ô][Ô] & Format(DataFinal, [Ô]YYYY-MM-DD HH:MM:SS[Ô]) & [Ô][ô]) AND ProSta = 1 Order by ProDatIni[Ô]teste ambas alterações
                    cara as 1o. ela vai só com em vez de colocar and colocar or ficando assim 
[th]
mas desse jeito qualquer data que eu colcar ele traz a segunda maneira nao me retorna valor nenhum
            | Query | [/th]
|   Sql = [Ô]SELECT * FROM Processos WHERE (ProDatIni >= [ô][Ô] & Format(DataInicial, [Ô]YYYY-MM-DD[Ô]) & _ [Ô][ô] or ProDatFim <= [ô][Ô] & Format(DataFinal, [Ô]YYYY-MM-DD[Ô]) & [Ô][ô] ) AND ProSta = 1 Order by ProDatIni[Ô]  | 
mas desse jeito qualquer data que eu colcar ele traz a segunda maneira nao me retorna valor nenhum
                    qual o formato do campo no banco de dados? Date ou datetime?
                
            
                    Detalhe fiz uns teste agora no sistema troquei o campo de dateTime para date e troce certinho só que cliente quer que coloque a h e minuto só que na pesquisa do relatorio pode ser apenas pela data alguem pode me ajudaer
                
            
                    faz o seguinte teste no format troque
HH:MM:SS por HH:NN:SS
N representa segundos senão se confunde com M de mes
faz esta alteração usando o campo como datetime
                
            HH:MM:SS por HH:NN:SS
N representa segundos senão se confunde com M de mes
faz esta alteração usando o campo como datetime
                        Tópico encerrado , respostas não são mais permitidas