INTERVALO DE DATAS NO SQL

CARLOSBINO 09/11/2009 00:55:21
#327193
Estou querendo fazer a seguinte consulta:
[Ô]SELECT * FROM Tabela WHERE Data BETWEEN #[Ô] & Format(Data1.text, [Ô]mm/dd/yyyy[Ô]) & [Ô]# AND # [Ô] & Format(Data2.text, [Ô]mm/dd/yyyy[Ô]) & [Ô]# ORDER BY Data[Ô]


Estou utilizando o Windows Vista e linguagem VB6, a consulta mostra só esta filtrando o dia e está desconsiderando o mês.
ALVAROVB2009 09/11/2009 09:24:05
#327203
Carlos bom dia !!

Carlos eu cheguei a ter esse problema, e corrigi criando duas variáveis do tipo data e substitui e também o que você pode fazer é colocar um cdate na frente do date1 e data2
Assim:
format(cdate(data2.text),[Ô]mm\dd\yyyy[Ô])

Acho que isso pode te ajudar
PARREIRA 27/11/2009 10:29:54
#328674
Esta problema é tipico do vb6,para vc resolvelo ,o melhor seria gravar as datas em padrão americano no banco de dados no formato YYYY/MM/DD.
Um exemplo 26/11/2009 e 05/12/2009 qual desses é maior? o vb6 identifica como maior o 26/11/2009
agora se vc fizer assim 2009/11/26 e 2009/12/05 concorda que é numero maior é 2009/12/05.
Por isso no vb6 é recomendavel gravar data invertida.

Porem quando for fazer a consulta não sera recomendavel usar Bettween,vc tera que fazer assim

WHERE DATA1 >= [ô]2009/11/26 AND DATA2 <= [ô]2009/12/05[ô]
Não esquecendo que no vb6 não é recomendavel usar o campo datetime so sql,use char(10)

Espero que tenho valido essa dica!!
MARCOSLING 27/11/2009 10:33:18
#328675
Qual é o banco de dados q vc está utilizando?!?
FFCOUTO 27/11/2009 10:39:02
#328676
Se você estiver usando o SQL SERVER recomendo duas mudanças na sua consulta:

1º Não utilize o BETWEEN é melhor utilizar >= e <=

2º Utilize a função CONVERT do SQL, nunca mais terá problemas com formato de data

SELECT * FROM Tabela WHERE (Data >= CONVERT(DATETIME, [ô][Ô] & Format(Data1.text, [Ô]mm/dd/yyyy[Ô]) & [Ô], 103)) AND (Data <= CONVERT(DATETIME, [Ô] & Format(Data2.text, [Ô]mm/dd/yyyy[Ô]) & [Ô], 103)) ORDER BY Data
CARLOSBINO 29/11/2009 15:03:57
#328797
Já descobri o problema! O campo Data na base está como testo, após converte para um campo Data/Hora, o problema foi resolvido. Valeu pela ajuda!
Tópico encerrado , respostas não são mais permitidas