Ir para conteúdo

Arquivado

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

Oczy

Consulta Data Com ASP

Recommended Posts

Bom Tarde Amigos,

 

Preciso de uma mãozinha dei umas pesquisadas mas não consegui sucesso. Este código foi o mais próximo que eu consegui. Preciso fazer uma consulta de datas usando asp.

 

Codigo de Conversao de Data (O codigo abaixo de conversao funciona ok. Coloquei so para referencia):

 

Function ConverteData(datax,tipo)
  'funçao específica para base de dados access para gerar uma data para q possa ser utilizada em busca em campos data em base access
  '- tipo 1= so converte a data
  '- tipo 2= converte a data e hora
  ConverteData = month(datax) &"/"&day(datax) &"/"&year(datax)
  if tipo = 2 then ConverteData = ConverteData &" "&hour(datax)&":"&minute(datax)&":"& second(datax)
  End Function

 

 

Select Para Pequisa

 

"Select * From Reservas Where Id_Sts="&ObjRS("Id_Sts")&" And ((Chegada Between #"&ConverteData(Chegada,1)&"# and #"&ConverteData(Saida,1)&"#) Or (Saida Between #"&ConverteData(Chegada,1)&"# and #"&ConverteData(Saida,1)&"#))"

 

Existe um registro na tabela entre 15/03/2013 ate 20/03/2013

 

Sao duas colunas, uma se chama CHEGADA outra SAIDA

 

A coluna Sts (tipo numero) é status no caso pode ser 1

 

Quando eu pesquiso entre 10/03/2013 ate 15/03/2013 funciona corretamente.

 

O Problema é quando eu pesquiso dentro do periodo exemplo 16/03/2013 ate 19/03/2013 ai ele nao retorna nenhum registro

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá um response.write na sua string SQL para ver o que esta sendo passado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Save Xanburzum.... Segue o response.write que pediu:

Select * From Reservas Where Id_Sts=1 And ((Chegada Between #4/1/2013# and #4/10/2013#) Or (Saida Between #4/1/2013# and #4/10/2013#))

 

Gilberto, no meu entendimento nao consigo fazer isso com access. A nao ser que meus conhecimentos sejam ruins a ponto de nao saber fazer isso.

 

Abraçao a todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

as datas de comparação do between estão corretas ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem como sim, basta você da uma pesquisada ai que você vai encontrar.

 

O ideal seria você usar o banco de dados mysql que é gratuito e também você pode acessar direto da sua maquina ele online.



Pelo meu entendimento se a coluna estiver com tipo de dados DATE vai estar 2013-03-10 e não 10/03/2013.

Compartilhar este post


Link para o post
Compartilhar em outros sites

independente do banco, vc pode tratar os dados e apresentar do jeito que quiser

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom Dia Pessoal, Sim o formato da data esta certa. Tentei tambem com ">=" e "<=" tambem nao tive resultados.

O estranho é que continua apresentando o mesmo problema... existe um registro no banco de 15/03 ate 20/03.

se eu pesquiso... e so uma das colunas esta dento do periodo ele retorna ocupado Ex: de 11/03 ate 16/03

 

agora se eu pesquiso e o perido esta dentro do que esta cadastradado ele da erro ex: de 16/03 ate 19/03 e aparece como livre quando na verdade nao esta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

na sua função vc está usando mes/dia/ano

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigos, o codigo esta no meu primeiro post. Codigo da funcao e o codigo do select...

 

Sim na funcao tem dia mes e ano

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Ulisses,

 

Ate posso cara mas fica mais pesado. Deve ser alguma bobeirinha, mas nao vejo onde esta o BUG.

 

Abraços a todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Existe um registro na tabela entre 15/03/2013 ate 20/03/2013

Sao duas colunas, uma se chama CHEGADA outra SAIDA

A coluna Sts (tipo numero) é status no caso pode ser 1

Quando eu pesquiso entre 10/03/2013 ate 15/03/2013 funciona corretamente.

O Problema é quando eu pesquiso dentro do periodo exemplo 16/03/2013 ate 19/03/2013 ai ele nao retorna nenhum registro

 

Internamente o access usa mes/dia/ano

 

nao consigo fazer isso com access

 

tente assim, para pesquisar datas no mes de março:

SELECT *
FROM TabelaTeste
WHERE (((TabelaTeste.[chegada]) Between #3/1/2013# And #3/31/2013#)) OR (((TabelaTeste.[saida]) Between #3/1/2013# And #3/31/2013#));

adapte os nomes dos campos e da tabela e "brinque" 1 pouco com as datas

até "pegar" o jeito..

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.