PROBLEMAS COM DATA NO SQL

CARLOSBINO 16/10/2009 21:19:16
#325517
Estou inserindo o seguinte código SQL na minha aplicação:

SELECT Ponto.* FROM Ponto WHERE (((Ponto.[cod])=2) AND ((Ponto.[Data])>=#10/1/2009# And (Ponto.[Data])<=#10/31/2009#) AND ((Ponto.[Turno])=1))


As data variam, porém quando insiro, por exemplo, a data 1/10/2009 ele interpreta 10/1/2009. Isto é, ele troca o dia e o mês. Porém quando insiro uma data onde a troca do dia e mês é uma data inválida ele aceita a data inicial, por exemplo, 31/10/2009, esta data ele aceita. Quem pode me dar uma ajuda?
RICART 16/10/2009 22:18:37
#325521
Isso depende do formato em que vc passa a data. Vc precisa passar sempre no formato: MM/dd/yyyy, sendo que os dias vc sempre informará o no formato 00 e o mês no formato 0, ou seja: 10/01/2009 -> 01-oct-2009 1/10/2009 -> 10-jan-2009 1/31/2009 - 31-jan-2009.
No seu exemplo, como vc está informando #10/1/2009# o sistema interpreta que o mês está no meio, pois está no formato 0. O correto seria #10/01/2009# .

Tente aí que vai dar certo.
CARLOSBINO 16/10/2009 23:18:02
#325525
Este código está numa aplicação onde das data variam e quando se insere a data o código é interpretado trocando o dia e o mês.
TECLA 17/10/2009 10:14:24
#325548
Resposta escolhida
Você está FORMATANDO a data antes de passá-la à QUERY?
CARLOSBINO 17/10/2009 10:19:12
#325550
Utilizo o código
CDate()
para formatar as datas.
TECLA 17/10/2009 10:20:31
#325551
Experimente o Format(Data, [Ô]mm/dd/yyyy[Ô]) no lugar do CDate e retorne o resultado.
CARLOSBINO 17/10/2009 10:24:41
#325553
Valeu!! Deu certo!!
Tópico encerrado , respostas não são mais permitidas