Ir para conteúdo

POWERED BY:

Arquivado

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

AndréMiranda

[Resolvido] Erro em BETWEEN

Recommended Posts

olá pessoal! Cá venho eu mais uma vez...

 

Quero fazer uma busca por data e me retornar os itens dentro das datas enviadas por mim... Tenho lá dois Campos de Texto: "de_data" e "ate_data".

Resumindo, minha QUERY está assim:

 

de_data = request.form("de_data")
ate_data = request.form("ate_data")

rs_data_cmd.CommandText = "SELECT MIN(data_evento) as menordata , MAX(data_evento) as maiordata FROM dbo.tb_despesas WHERE data_evento BETWEEN #'"&de_data&"'# AND #'"&ate_data&"'#'"

E dá o erro:

[Microsoft][ODBC SQL Server Driver][SQL Server]Line 1: Incorrect syntax near '10/02/2008'. [Microsoft][ODBC SQL Server Driver][SQL Server]Line 1: Incorrect syntax near '10/02/2008'.

Já tentei tirar aspas simples, duplas, inverter as posições etc etc etc... que será que pode ser??

 

Abs a todos!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aew

 

tira o # que ja deve funfa

 

:D

 

assim

 

SELECT MIN(data_evento) as menordata , MAX(data_evento) as maiordata FROM dbo.tb_despesas WHERE data_evento BETWEEN '"&de_data&"' AND #'"&ate_data&"'"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, não consegui ainda... se alguém puder me dar um help nessa, já estou há 3 dias nisso... nem sei mais o que fazer:

Vou passar as características da situação:

 

1- Num form de cadastro, o usuário digita a data no formato do Brasil (dd/mm/aaaa) e fica lá cadastrado no BD SQL Server certinho. Existe apenas um campo de texto para Data no meu form (ou seja, o cara NÃO digita o dia num campo, o mês em outro e o ano em outro)

2- O campo no BD que recebe essa data está configurado do tipo "datetime". Configurei assim pois utilizo numas págs uma Select que me traz a menor data e a maior e está funcionando perfeitamente.

3- Quero que os administradores do sistema busquem os itens por intervalo de data e coloquei dois campos de texto: "de_data" e "ate_data". O usuário dá um Enter e mandar pruma outra pág.

4- Essa outra pág é que recebe os valores e é aí que mora o problema... faço um Select com Between que não consigo resolver de forma alguma.

 

A minha string atual é essa:

data1 = request.form("de_data")
data2 = request.form("ate_data")
vem_data = CDate(data1)
para_data = CDate(data2)

"SELECT * FROM dbo.tb_despesas WHERE data_evento BETWEEN '"&vem_data&"' AND '"&para_data&"'"

Se eu escolho duas datas como: 01/03/2008 e 07/08/2008 funciona.

Se eu escolho duas datas como: 20/03/2008 e 15/07/2008 NÃO funciona. Não funciona pq ele entende q os números "20" e o "15" são meses e aí dá erro "out-of-range". E a sentenção de cima dá certo pq ele acha que os meses são "01" e "07" e aí tudo bem...

 

Ou seja, estou com um erro de conversão de Datas, erro de localidade... já tentei colocar LCID = 1033... 1046... Convert(DateTime, data, "dd/mm/yyyy")... nossa, já tentei de tudo... usar # ao invés de aspas simples...

 

Realmente não sei mais o que fazer. Na verdade, estou vendo que está dando esse erro de conversão de datas mas não estou conseguindo converter a Data pra que seja feito o SELECT BETWEEN...

 

Alguém pra dar um help??

Abs a todos!

André

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, consegui...

coloquei antes do meu select um set dateformat dmy e funcionou, ficando assim:

"SET DATEFORMAT DMY SELECT * FROM dbo.tb_despesas WHERE data_evento BETWEEN '"&vem_data&"' AND '"&para_data&"' ORDER BY data_evento DESC"

Abs!

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.