Ir para conteúdo

POWERED BY:

Arquivado

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

PhoEniXFirE

Busca Por Data No Db

Recommended Posts

E ae galera?!

 

Pesquisei no fórum, mas realmente n achei exatamente o q eu queria por isso estou postando.

 

Pra quem já sabe isso eh coisa simples!!

 

Estou com um formulário onde o internauta faz a busca das notícias por data:

<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%">				<tr>				  <td height="30">				  <p align="right"><font face="Arial" style="font-size: 8pt">				  Dia:</font></td>				  <td>	<select name="dia" style="font-family: arial; font-size: 8 pt; color: #000; font-weight:700">	  <option value="" selected>-</option>  <% For intDay = 1 To 31 %>  	  <option value="<% = intDay %>" ><% = intDay %></option>  <% Next %>	  	</select></td>				  <td>				  <p align="right"><font face="Arial" style="font-size: 8pt">				  Mês:</font></td>				  <td>	<select name="mes" onChange="javascript: calculardias();" style="font-family: arial; font-size: 8 pt; color: #000; font-weight:700">  <% For intMonth = 1 To 12 %>  	  <option value="<% = intMonth %>" <% If Month(Now()) = intMonth Then Response.Write(" selected") %>><% = MonthName(intMonth) %></option>  <% Next %>  	</select></td>				  <td>				  <p align="right"><font face="Arial" style="font-size: 8pt">				  Ano:</font></td>				  <td>	<select name="ano" onChange="javascript: calculardias();" style="font-family: arial; font-size: 8 pt; color: #000; font-weight:700">  <% For intYear = Year(Now()) - 2 To Year(Now())%>  	  <option value="<% = intYear %>" <% If Year(Now()) = intYear Then Response.Write(" selected") %>><% = intYear %></option>  <% Next %>	  	</select></td>				</tr>			  </table>

Achei algumas coisas na pesquisa e testei, mas n deu certo:

 

Sql = "SELECT Noticias.Id AS Id, " & _			 "Noticias.Secao, " & _			 "Secao.Descricao AS Secao, " & _			 "Secao.Pasta AS Pasta, " & _			 "Noticias.Chamada AS Chamada, " & _			 "Noticias.Previa AS Previa, " & _			 "Noticias.Data AS Data " & _			 "FROM Secao INNER JOIN Noticias " & _			 "ON Secao.Cod=Noticias.Secao WHERE "If Dia = "" ThenElseSql = Sql &  "DAY(Noticias.Data) = " & Dia & " AND "End IfSql = Sql &  "MONTH(Noticias.Data) = " & Mes & " AND YEAR(Noticias.Data) = " & Ano & "Sql = Sql &  "ORDER BY Noticias.Data DESC;"

Será q alguém pode me informar qual o metódo correto para executar isso?

 

P.s.: Ah, o internauta se quiser pode n selecionar nenhum dia, no caso, assim buscando todos os dias daquele mês.

 

Abraço e obrigado pela atenção!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara se a busca for por data exata faz assim :

dia = request.form("dia")mes = request.form("mes")ano = request.form("ano")data = dia & "/" & mes & "/" & anoSql = "SELECT * from noticias where data_campo = '" & data & "'"

Agora se você uqe buscar as de somente um mes, tipo mes de marõ. Ai faz assim:

 

aql = "select * from noticias where month(data_campo) = '" & mes & "'"

Como você não falou pra qual banco está usando... Isso vai servir pra Access ou Mssql. No Mysql tem que testar pra ver.

 

 

Até...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara se a busca for por data exata faz assim :

Meu banco eh ACCESS. Estou, no caso, utilizando a segunda opção q você falou no seu post, até mesmo você pode ver no meu código, a única coisa q fiz nele foi uma situação para o dia. Coloquei as aspas simples para ver se resolvia, mas nada, recebo esta msg:

 

O conjunto de registros atual não oferece suporte para indicadores. Isso pode ser uma limitação do provedor ou do tipo de cursor selecionado.

/arquivos/data.asp, line 87

 

Tem uma coisas q devem ser levadas em consideração, q podem até modificar isso, por exemplo, n são inputs, são selects, como pode se observar q eles se formam e no mês eh número q ele tem no value, n nome e se fosse nome seria em português, outra coisa, meu form está GET, será q isso pode influenciar?

 

Este eh o q eh enviado:

http://localhost/arquivos/data.asp?dia=28&mes=2&ano=2005&previa=ON

 

Quando coloco o ano 05 recebo q foi encontrado -1 matérias, pq isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para pesquisar no access primeiramente a data deve estar no formato mm/dd/yyyyentão faça o seguinte:data = FormatDateTime(request.QueryString("data"),2)ano = year(data )mes = month(data )dia = day(data )diaMontado = mes & "/" & dia & "/" & anoe depois a string deverá fica assim:sSql = "SELECT * FROM Sorteio WHERE sor_Data = #"&diaMontado&"# ORDER by id DESC"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para pesquisar no access primeiramente a data deve estar no formato

mm/dd/yyyy

E ae cara? Valew pela força, mas desta forma n serve p mim, pois tem o caso de q o internauta n querer escolher o dia, assim, exibindo todos as matérias daquele mês, entende? Do jeito q eu fiz aparentemente está correto, quanto ao q estava dando erro como citei acima eh o seguinte:

 

if ( not rs.EOF ) thenIf Request.QueryString("pagina") = "" Then	intpagina = 1ELSE	intpagina = CInt(Request.QueryString("pagina"))End If	Rs.AbsolutePage=intpaginaintrec=0While intrec < Rs.PageSize and not Rs.EOF
E Rs.AbsolutePage=intpagina é a linha 87. Quando retiro, funciona, mas n posso deixar sem isto n defino em qual página está!!

 

Outra coisa, o Rs.RecordCount só me dá o valor de -1.

 

:wacko: Galera me dê uma luz aí!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo uma coisa que vai funcionar é você entrar no modo sql do access e joga sua query la e ir testantdo!! assim pode ser que você axe até mais facil o erro

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.