Ir para conteúdo

POWERED BY:

Arquivado

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

Bins

Uma mãozinha com o SQL...

Recommended Posts

Saudações colegas!Tenho uma dúvida sobre SQL e venho pedir uma maõzinha pra vocês. Mas, acho que desta vez vou levar o braço junto :D Seguinte, preciso fazer uma pesquisa por datas. As datas estavam ao contrário (primeiro mes, depois dia), então arrumei e fiz a pesquisa. Até ai, tudo bem. O problema (sempre existe um....) é que tem um campo de hora, Então ao inves de ser DATA INICIO até DATA TERMINO a pesquisa deve ser DATA INICIO a partir de HORA INICIO até DATA TERMINO e HORA TERMINO. Então o que eu preciso é:1 - Como fazer que ele pesquise as datas, mas considerando as horas (data 1 começando em hora tal até data fim terminando em hora tal)2 - Se eu tivesse mantido as datas no formato mm/dd/yyyy teria dado pra pesquisar? (Estou perguntando porque a base de dados por enquanto é Access, e ele não deixou transformar o campo em data hora com as datas deste jeito)Obrigado pela atenção

Compartilhar este post


Link para o post
Compartilhar em outros sites

<%...sql = "select * from SUATABLE where (DataInicio >= "10/10/2004" and HoraInicio >= "10:00") and (DataTermino <= "20/10/2004" and HoraTermino <= "20:00")Set rsRecordSet = Banco.Execute(sql)...%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

você deveria usar funçoes que peguem este valornão sei se Date e Time resolvem, só testando, mas a ideia é essasql = "select * from SUATABLE where Date(Campo)>= Date(10/10/2004 13:12:12) and Time(Campo) >= Time((10/10/2004 13:12:12) and Date(Campo) <= 14/10/2004 20:12:12 and Time(Campo) <= Time(14/10/2004 20:12:12)"Provavelmente isso ai vai dar erro mas a ideia é pegar apenas a parte do campo que queremos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu pessoal pela ajuda, mas algo ainda não está indo bem :D O "where" está assimWHERE (date >='"&data_inicial&"' and start_time >='"&hora_inicial&"') and (date<='"&data_final&"'and start_time<='"&hora_final&"')e se imprimir na tela fica....WHERE (date >='10/01/2004' and start_time >='12:00:00') and (date<='11/01/2004' and start_time<='15:00:00')Mas ele dá erro de tipo inválido. :angry: O campo start_time, onde está dando o erro é data_hora, no formato hora completa (a base de dados é access). Se eu tirar este campo da hora, a pesquisa funciona.Alguem tem alguma idéia?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bins,

 

Pode utilizar o between tb, essa é uma outra forma de ser feito.

Sobre o erro, seria bom fazer uma debugação mais aprofundada, ou seja, imprima a instrução SQL e informe o erro exato que aparece:

 

antes do Set rsRecordSet = Banco.Execute(sql), coloque:

 

<%

response.write SQL

%>

 

e informe o resultado.

 

Informe tb quais os tipos de dados dos campos do banco de dados q estão nesta consulta

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.