none
Realizar busca entre intervalo de datas. RRS feed

  • Pergunta

  • Galera to tendando realizar uma busca entre o intervalo de datas, mas ta saindo algo errado.

    Estou usando o comando abaixo, uso o sql server 2008

    ----------------------------------------------------------------------------------------------------------------

     SELECT * FROM tbl_ControleAcesso WHERE ysnData BETWEEN '01/08/2010' and '02/08/2010'

    ----------------------------------------------------------------------------------------------------------------

    O problema é que no resultado ele esta me trazendo todos os dias 01 e 02 de todos os meses e nao do mes que solicitei.

    Ex.:

    01/08/2010

    01/09/2010

    01/10/2010

    02/08/2010

    02/09/2010

    02/10/2010

    ----------------------------------

    o que estou fazendo de errado.

    Qual a sintaxe do comando correto...

    Alguem pode me ajudar, agradeço

    quinta-feira, 21 de outubro de 2010 14:21

Todas as Respostas

  • Programador MK

    tenta assim

    SELECT * FROM tbl_ControleAcesso WHERE ysnData BETWEEN '20100801' and '20100802'
    
    

    acho que o o formato esta errado.. ele ta trocando ano com mes... DMY ou MDY

    att.
    Marcelo Fernandes


    Não Perca o Worldwide Online TechDay 2010

    Um evento gratuito com grandes personalidades (Buck Woody, Chad Miller, Steve Jones, Fabricio Catae e muito mais...

    Eu vou falar sobre particionamento de tabelas registre-se

    Acesse o site do evento http://www.online.techday.net.br

    MCP, MCDBA, MCSA, MCTS.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba

    quinta-feira, 21 de outubro de 2010 15:44
  • Bom, não funcionou... kkkkk

    em significado de formato de data, eu ja tinha tentado colocar todos formatos possiveis.

    Conhece algum outro comando que possa fazer essa busca no banco ???

    quinta-feira, 21 de outubro de 2010 17:51
  • Boa Noite,

    Possivelmente o tipo de dados está como VARCHAR (ou CHAR). É possível contornar, mas não há como tornar sua consulta performática. O ideal seria que você utilizasse tipos de dados como DATE ou o DATETIME2.

    SELECT * FROM tbl_ControleAcesso WHERE CAST(ysnData As DATE) BETWEEN '20100801' and '20100802'
    

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com


    Classifique as respostas. O seu feedback é imprescindível
    quinta-feira, 21 de outubro de 2010 22:40