none
Problema ao comparar datas no access + vb.net RRS feed

  • Pergunta

  • Olá bom dia amigos !

    Estou com o seguinte problema....

    Estou desenvolvendo um sistema que usa como base de dados o Access, e nessa base de dados existe um campo chamado vencimento do tipo data, onde no caso é a data do vencimento do cliente.

    Preciso comparar essa data da base com a data atual para verificar se o cliente está em atraso ou não...funciona assim, eu pego a data atual do sistema e faço um select na base para retornar somente os clientes em atraso, porem quando eu declaro a variavel como date ou datetime ela vem com esse formato: #7/9/2013#, eu ja pesquisei e vi que tem como formatar ela, mas neste caso ela se transformaria em uma string perdendo assim o seu propósito, pois ela como string não me serve, dá erro na hora da busca pelo fato dos tipos de dados serem diferentes, para mudar os tipos de dados do campo vencimento da base de dados para texto tambem não funciona pois ele trata diferente as comparações,  para ele 07/10/2013 < 10/07/2013.... a pergunta é tem como eu pegar essa data #7/9/2013# e deixar ela assim 09/07/2013, porem ela continuando com o tipo date ou datetime ???

    desde ja muito obrigado

    e desculpem se algo parecido ja existir aqui no fórum, procurei e não encontrei :/

    abraços



    d[^.^]b

    terça-feira, 9 de julho de 2013 13:19

Todas as Respostas

  • Em C# seria assim:  

       DateTime dt = DateTime.Now;
                dt = DateTime.Parse(dt.ToString(), new CultureInfo("en-us"));
    Basicamente é mudar a cultura da data, em vbnet é a mesma coisa.
    terça-feira, 9 de julho de 2013 17:51
  • Olá boa noite diego,

    Então cara, eu vou tentar fazer isso que vc falou sim, porem eu ja havia chegado a uma solução....acredito que não seja a melhor, porem está funcionando bem ;)

    segue abaixo o que fiz:

            Dim hoje As String = Now.Date
            Dim dia As String = hoje.Substring(0, 3)
            Dim mes As String = hoje.Substring(3, 3)
            Dim ano As String = hoje.Substring(6, 4)
          
            hoje = mes & dia & ano
    
            comandoSQL = "select * from main where vencimento <= #" & hoje & "# order by nome asc"

    De qualquer forma,  vlew mesmo pela dica ok amigo ;)

    Abraço.


    d[^.^]b

    quarta-feira, 10 de julho de 2013 23:01
  • Olá amigo, boa noite !

    Então cara, eu vou tentar fazer isso que vc falou sim, porem eu ja havia chegado a uma solução....acredito que não seja a melhor, porem está funcionando bem ;)

    segue abaixo o que fiz:

            Dim hoje As String = Now.Date
            Dim dia As String = hoje.Substring(0, 3)
            Dim mes As String = hoje.Substring(3, 3)
            Dim ano As String = hoje.Substring(6, 4)
          
            hoje = mes & dia & ano
    
            comandoSQL = "select * from main where vencimento <= #" & hoje & "# order by nome asc"

    De qualquer forma,  vlew mesmo pela dica ok ;)

    Abraço.



    d[^.^]b

    quarta-feira, 10 de julho de 2013 23:02