Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Cable

Fazer um SELECT entre datas

Recommended Posts

Galera, seguinte:Eu tenho uma busca de noticias, e preciso busca-las de uma data até outra data.Ex:. Buscar todas as noticias entre 09/09/2003 até 09/10/2003.Tenderam?As noticias estão gravadas no banco com a sua propria data (do sistema).Falow e obrigado. ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cable, me dá um feedback aí...você. conseguiu?Eu cheguei a fazer a mesma coisa que você. mas no meu só consegui fazer a comparação quando inverti a data para o formato yyyy/mm/ddConfere? rodrigofaria

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso mesmo Rodrigo. Eu também usei o FormatDate pra faze legalzinho esse SELECT. O meu fico mais ou menos assim:

...data = FormatDate("data_tb_noticia",2)cbo_data1 = request.Form("cbo_data1")cbo_data2 = request.Form("cbo_data2")SQL = "SELECT data_tb_noticia FROM tb_noticia WHERE " & data & " Between " & cbo_data1 & " AND " & cbo_data2 & " ORDER BY data_tb_noticia"

Pelo menos aqui funciono assim. Legalzinho. :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rodrio, quebra essa pra mim:Voce falou que ai so funcionou qdo você transformou pra dd/mm/aaaa certo ??você uso o FormatDatetime ??Me fala ai como você fez pq aqui n deu...esse jeito que eu postei em cima foi teorico. De primeira vista deu certo, mas depois fico zoado...Abraço !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Comparação entre datas:recebe as duas datas do formulário (lists):dia = request.QueryString("dia")mes = request.QueryString("mes")ano = request.QueryString("ano")dia2 = request.QueryString("dia2")mes2 = request.QueryString("mes2")ano2 = request.QueryString("ano2")daí você. monta as datas:data1 = ano&"/"&mes&"/"&"dia" (formato yyyy/mm/dd)data2 = ano2&"/"&mes2&"/"&dia2 (formato yyyy/mm/dd)IsDate data1IsDate data2Se a sua busca contar com um campo texto, você. terá que tratar os acentos:palavra = request.QueryString("palavra")IF PALAVRA<>"" THENPALAVRA = replace(PALAVRA,"a","[a,á,à,ã,â,ä]")PALAVRA = replace(PALAVRA,"e","[e,é,è,ê,ë]")PALAVRA = replace(PALAVRA,"i","[i,í,ì,î,ï]")PALAVRA = replace(PALAVRA,"o","[o,ó,ò,õ,ô,ö]")PALAVRA = replace(PALAVRA,"u","[u,ú,ù,û,ü]")PALAVRA = PALAVRAEND IFDaí é só usar:"select * from tabela where (dtcadastramento between '" & data1 & "' and '" & data2 & "') AND Palvara='"&PALAVRA&"' order by dtcadastramento asc"abraço,rodrigofaria

Compartilhar este post


Link para o post
Compartilhar em outros sites

Outra perguntinha..(essa eh besta)

Para fazer essa comparacao, o campo no banco de dados tem q ser tipo "Data" ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso, é data mesmo. Q nem o Diego falou.O que eu tinha como duvida, era que eu pego a data do sistema e insiro no banco, entao fica assim no banco: (dd/mm/aaaa : hh/mm/ss), ou seja, com hora, minuto e segundo.Isso q tava me atrapalhando. MAS !!! Hehehe....descobri uma coisa porai que me ajudou.Assim:Inserir um # antes e depois da data no SELECT (ou do objeto da qual a mesma vem). Ex:.

"SELECT * FROM tb_noticia WHERE data_tb_noticia BETWEEN #" & combo_data1 & "# AND #" & combo_data2 & "#"

Isso me ajudo. Não precisei formatar a data. Será que isso te ajuda Rodrigo ??? Espero q sim... :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

d.eleete, como eu ainda estou usando o access como teste e, por padrão, ele salva data no formato (dd/mm/yy) eu alterei o campo para texto com 10 caracteres (yyyy/mm/dd), o que funciona perfeitamente na pesquisa.No SQL SERVER os campos, se eu não me engano, são salvos no formato yyyy/mm/dd, não é? Nesse caso, acredito eu, o campo pode ser definido como campo data sem problemas.Se você. souber (ou qualquer um) como mudar a formatação padrão da data no access para yyyy/mm/dd acho que você. poderá fazer normalmente declarando o campo como data, ao invés de texto. Mas, insisto, com o campo texto funciona que é uma beleza...Ainda insisto, queria até fazer uns testes aqui: como faço para alterar a formatação da data no accesse para o formato yyyy/mm/dd ?obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

As minhas datas são passadas por Request pelo usuário quando ele escolhe as datas com as quais ele quer fazer a pesquisa. Daí sou obrigado a "montar a data", literalmente.Em outro forum, um usuário me disse que para fazer essa comparação (data1 x data2) eu teria que fazer minha pesquisa de data no formato yyyy/mm/dd (ano/mes/dia), e deu certo...Só que, por uma questão de ignorância minha no ACCESS eu não sei fazer essa formatação (yyyy/mm/dd) como padrão para campo data, mas sei que no SQL SERVER já é salvo assim no sistema automaticamente, inclusive com as horas e tudo mais...não é?Cable, testa aí e vê se tá 100% do seu jeito... A propósito esse "#" tira as horas, é?Não entendi...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso. Teoricamente ele tira as horas.Ou ele as tira, ou ele procura no campo algo entre as #'s :huh:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.