Ir para conteúdo

POWERED BY:

Arquivado

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

webfuture

Select entre datas não respeita condição

Recommended Posts

Galera tenho uma tabela onde registro algumas informações de acesso a algumas areas de um site, em uma area listo o total de acessos, data etc.. em cada item tenho um link que passo a data em questão, ou seja o link fica assim:

 

pagina.asp?opcao=1&data=16/5/2007

 

Nesta página (pagina.asp) faço um select no banco para trazer as informações de acordo com a opção e a data escolhida, porém, ele lista normalmente mas traz outras datas que não são 16/5/2007....

 

vejam o script:

 

RsListaDAdos.open "Select campo1, campo2, campo3 from tabela where day(data) = '"& Day(Request("data")) &"' and month(data) = '"& Month(REquest("data")) &"' and Year(data) = '"& Year(Request("data")) &"' AND script = 'canal1' or script = 'canal2' ", cn

Este é o script usado, lembro que isto é com ASP e MySQL, tem algo errado neste select que esta causando o erro mencionado? Tentei de varias maneiras fazer isto funcionar mas não consegui ainda, deve ser algo bobo...

 

Se alguém puder ajudar,

 

WebFuture

Compartilhar este post


Link para o post
Compartilhar em outros sites

primeiro....eu mandaria escrever o Sql pra saber exatamente como está sendo montado

depois verificaria como estão os dados do campo data na tabela

confirmava se estão no mesmo formato(provavelmente não)

faria uma função simples pra formatar a data antes da consulta

mudaria o sql para uma formatação mais simples e setaria o lcid...exemplo de formatação padrão para campo DATE no mysql

 

session.lcid=1046 'formato brasileirodia =  day(Request("data")) mes=  month(Request("data")) ano =  year(Request("data"))dat = ano&"-"&mes&"-"&diaRsListaDAdos.open "Select campo1, campo2, campo3 from tabela where day(data) = '"&dat&"' AND (script = 'canal1' or script = 'canal2' )", cn

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá jonathandj, obrigado pela resposta, vamos lá, o SQL depois que fiz uns testes agora esta saindo assim:session.lcid=1046 dia = day(Request("data"))mes= month(Request("data"))ano = year(Request("data"))data = ano &"-" & mes & "-" & diaSelect palavra, referencia, encontrado, data from tb_registros where data like '"& data &"'que retorna:Select palavra, referencia, encontrado, data from tb_registros where data like '2007-05-10' Retirei os outros filtros e deixei somente para puxar onde conter parte da data para testar mas também não rola.No banco de dados as datas são gravadas assim:2007-05-10 00:11:212007-05-10 00:11:252007-05-10 00:11:27Da forma que montei o SElect não era para retornar alguma coisa? WebFuture

Compartilhar este post


Link para o post
Compartilhar em outros sites

Camarada

 

Tem certeza que sua variável data esta com o conteúdo correto.

 

No sql mude:

Select palavra, referencia, encontrado, data from tb_registros where data like '"& data &"'
Para:

Select palavra, referencia, encontrado, data from tb_registros where data '%"& data &"%'"
Ou

Select palavra, referencia, encontrado, data from tb_registros where data = '"& data &"'"
Para maiores detalhes http://dev.mysql.com/doc/refman/5.1/en/str...l#operator_like.

 

Agora o campo data na tabela esta ms no formato YYYY/MM/DD?

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Camarada,

 

Tentas isto:

Select palavra, referencia, encontrado, data from tb_registros where data '%"& data &"%'"

Ou

Select palavra, referencia, encontrado, data from tb_registros where data  = '"& data &"%'"

Pode o uso errado do LIKE poste até o link de referência do MySql.

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

só completando a resposta do jothaz....ao invés de like use =se usar o % então o LIKE entra em açãoSelect palavra, referencia, encontrado, data from tb_registros where data = '"& data &"'"Select palavra, referencia, encontrado, data from tb_registros where data LIKE '%"& data &"%'"veja o link que te passei pra converter DATETIME para DATE no MySql

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.