Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Consultar Data inicial e final no ASP - HELP URGENTE!


nosliwde

Pergunta

Caros colegas,

Tenho que consultar registros em uma tabela no BD, começando de uma data inicial até uma data final.

Na tabela, existe um campo chamado CheData e a data lá está armazenada assim:

13/03/2008 00:00:00

Estou tentando consultar assim:

strLista=" SELECT * FROM CHEQUE WHERE CONBANCODIGO="&ReQuest.QueryString("inContaBancaria") &" AND CheData='13/08'2008'"

No exemplo acima usei apenas uma data como exemplo, mas não me retorna nenhum resultado. Preciso por exemplo, consultar todas as emissões de cheques entra a data de 13/03/2008 até o dia 25/12/2008.

Como faço este tipo de consulta?

Alguém aí pode me ajudar?

Editado por nosliwde
Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Quando você consulta por data você deve abraçar as datas com #...

a sintaxe para o que você procura seria algo assim:

strLista=" SELECT * FROM CHEQUE WHERE CONBANCODIGO="&ReQuest.QueryString("inContaBancaria") &" AND CheData BETWEEN #" & (datai) & "# and #" & (dataf) & "# "

Tem um monte de tópicos sobre isso aqui! dê uma pesquisada antes de abrir novos tópicos...

[]'s Rafael Spilki

Link para o comentário
Compartilhar em outros sites

  • 0

Caros Colegas,

Tenho uma página ASP e preciso fazer uma consulta entre datas, mas está aparecendo o seguinte erro:

Microsoft OLE DB Provider for SQL Server error '80040e07'

Conversion failed when converting character string to smalldatetime data type.

/Financeiro/Cadastro/Conciliacao/LisConciliacao.asp, line 122

Tentei a query assim(esta foi a q gerou a msg de erro acima):

strLista=" SELECT * FROM CHEQUE WHERE CONBANCODIGO="&ReQuest.QueryString("inContaBancaria")&" AND CheData BETWEEN ('#13/03/2008#''MM/DD/YYYY') AND ('#20/01/2009#''MM/DD/YYYY') ORDER BY CheData"

Minhas outras tentativas:

1) strLista=" SELECT * FROM CHEQUE WHERE CONBANCODIGO="&ReQuest.QueryString("inContaBancaria")&" AND CheData BETWEEN ('#13/03/2008#','MM/DD/YYYY') AND ('#20/01/2009#','MM/DD/YYYY') ORDER BY CheData"

2) strLista=" SELECT * FROM CHEQUE WHERE CONBANCODIGO="&ReQuest.QueryString("inContaBancaria")&" AND CheData BETWEEN '13/03/2008' AND '20/01/2009' ORDER BY CheData"

3) strLista=" SELECT * FROM CHEQUE WHERE CONBANCODIGO="&ReQuest.QueryString("inContaBancaria")&" AND CheData BETWEEN '#13/03/2008#' AND '#20/01/2009#' ORDER BY CheData"

Todas deram errado.

Como montar então esta consulta? Sei q a mensagem acima tem algo a haver com conversão, mas como fazê-la?

Aguardo sua ajuda.

Link para o comentário
Compartilhar em outros sites

  • 0

Olá nosliwde!

esperimente usar desta forma:

13-03-2008

Converta isto / por isto -

Crie uma função para fazer está conversão antes da consulta que provavelmente irá solucionar seu problema e/ou configure isto em seu banco de dados para fazer isto automaticamente, o problema é para consultar e se fizer isto automaticamente terá problemas na exibição também. O melhor é criar uma função para isto.

Explicação:

Isto acontece pode o motor do banco de dados funciona como uma mira digamos assim, imagine duas linhas cruzadas em forma de uma cruz procurando um alvo, este alvo é sua informação registrada no banco de dados, cada linha representa um comando e quando elas não processam este comando elas travavam, ou seja, não consultam nada. As linhas não sabem para onde ir nas informações registradas em linhas 360 rotáveis.

O que está acontecendo é que você está usando isto / e não isto e as tais linhas usam isto –

É só isto que está acontecendo.

Espero ter ajudado.

Editado por Marcio Benvenuto de Lima
Link para o comentário
Compartilhar em outros sites

  • 0

Taí, eu mesmo resolvi.

Criei a seguinte função em Asp:

<%

function formatadata(data)

'--Criando um vetor para teste

vVetor = "0,1,2"

vVetor = Split(data,"/")

new_data = vVetor(2)&"-"&vVetor(1)&"-"&vVetor(0)

formatadata = new_data

end function

%>

depois eu chamei a função na query, da seguinte forma:

strLista=" SELECT * FROM CHEQUE WHERE CONBANCODIGO="&ReQuest.QueryString("inContaBancaria")&" AND CheDataConciliado BETWEEN '"&formatadata(request.QueryString("dataIni")) &"' AND '"&formatadata(request.QueryString("dataFim"))&"' ORDER BY CheDataConciliado"

É isso aí. Até mais.

Agradeço a orientação e ajuda dos irmãos. Té mais

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...