PESQUISA MYSQL ENTRE DATAS

MLALEX 13/07/2015 15:18:58
#448767
Olá pessoal!!

Estou com meu cérebro derretendo de tanto tentar 1200 formas diferentes de fazer um select entre datas e nenhuma funciona. O quadro é o seguinte:

Tenho um banco de dados em que uma coluna (text e não date - acho que o problema começa aqui) tem o seguinte formato [Ô]dd/MM/yyyy hh:mm:ss[Ô]. Observem que o registro foi feito com dia/mês/ano.
Tentei os seguintes códigos:
[Ô]Select * meuBanco Where Data between [ô]01/07/2015[ô] and [ô]13/07/2015[ô][Ô]
[Ô]Select * meuBanco Where Data between [ô]2015/07/01[ô] and [ô]2015/07/13[ô][Ô]
[Ô]Select * meuBanco Where Data between [ô]01-07-2015[ô] and [ô]13-07-2015[ô][Ô]
[Ô]Select * meuBanco Where Data between [ô]2015-07-01[ô] and [ô]2015-07-13[ô][Ô]
[Ô]Select * meuBanco Where Data between cast [ô]2015/07/01[ô] and [ô]2015//07/13[ô][Ô]


Nada disso funcionou. Onde está o erro? Será que vou ter que mudar o tipo de campo do meu banco de text para date ou para datetime?

Agradeço a atenção de vocês.
ALVAROVB2009 13/07/2015 16:09:37
#448771
Resposta escolhida
Segue como eu faço
where datapedido between [ô][Ô] & Format(TxtDataInicial.Text, [Ô]YYYY/MM/DD[Ô]) & [Ô][ô] and [ô][Ô] & Format(TxtDataFinal.Text, [Ô]YYYY/MM/DD[Ô]) & [Ô][ô] [Ô]


Seu campo terá que estar como tipo DATE ou DATETIME


LUIZCOMINO 13/07/2015 16:52:28
#448776
amigo o ideal seria mudar mas....
tente assim usar o date:


[Ô]Select * from sua tabela Where date(Data) between [ô]01/07/2015[ô] and [ô]13/07/2015[ô][Ô]

ou


[Ô]Select * from sua tabela Where date(Data) between [ô]2015/07/01[ô] and [ô]2015/07/13[ô][Ô]

ou

[Ô]Select * from sua tabela Where date(Data) between [ô]2015-07-01[ô] and [ô]2015-07-13[ô][Ô]
MLALEX 13/07/2015 18:51:16
#448780
Olá Alvaro e Luiz!! Primeiro quero agradecer a atenção de vocês.

Citação:

Seu campo terá que estar como tipo DATE ou DATETIME



Não corre o risco de apagar informações se eu mudar o tipo de Text para DATE com os campos já preenchidos??

Citação:

[Ô]Select * from sua tabela Where date(Data) between [ô]2015/07/01[ô] and [ô]2015/07/13[ô][Ô]



Se eu entendi direito, essa seria a forma de formatar o campo text para date sem precisar alterar no banco de dados? Se for isso, não funcionou.

O problema não seria comparar o formato que além da data tem hora minutos e segundos ([Ô]dd/MM/yyyy hh:mm:ss[Ô]) com um formato que tem apenas data ([Ô]dd/MM/yyyy[Ô])?
ou o problema seria que no meu campo text está no formato brasileiro [Ô]dd/MM/yyyy hh:mm:ss[Ô] quando o certo seria no formato americano [Ô]yyyy/MM/dd hh:mm:ss[Ô]? Se for esse o caso, como formatar na query?

ALVAROVB2009 13/07/2015 19:33:49
#448783
Acho muito mais fácil vc mudar o tipo do campo do que ficar adaptando as query.

O que vc pode fazer é criar uma coluna do tipo data e fazer um update depois excluir a antiga coluna e acabou o seu problema, eu ja fiz muito isso.
O que vc esta passando eu ja passei muito rsrsrs, e a melhor solução para acabar com minha dor de cabeça, foi trocar o tipo do campo, é rápido

Lógico tem que ver se vale a pena ter um pequeno trabalho agora, como disse, para mim foi

Porque assim, vc trocando o tipo do campo, terá que ver no(s) formulár(s)io onde vc esta gravando essa data, terá que mudar o código, tendo que implementar o comando para gravar a data no access, seria esse:
seucampo = #[Ô] & format(seutext,MM/DD/YYYY[Ô]) & [Ô]# [Ô]

Caso vc ache que seja vantajoso trocar o campo, o código ficaria algo assim
update seubanco set novocampodata = campodataatual

A única coisa que vc tem que observar é se o campo esta com os dados no formato de data, que é para serem reconhecidos corretamente pelo novo campo, só isso
Depois excluir o campo antigo e renomear o novo campo para o nome antigo, para não dar problema no projeto com a troca de nome
LUIZCOMINO 14/07/2015 11:41:15
#448803
[Ô]Select * from sua tabela Where date(Data) between date([ô]01/07/2015[ô]) and date([ô]13/07/2015[ô])[Ô]
ou
[Ô]Select * from sua tabela Where date(Data) >=date([ô]01/07/2015[ô]) and date(Data) <= date([ô]13/07/2015[ô])[Ô]

tente a ultima vez ai kkk
MLALEX 14/07/2015 11:58:41
#448804
Guys!! MUITO OBRIGADO aos dois, mas o problema era na forma que eu estava montando a query. Tinha uma série de condições para a montagem da query e havia um erro nessa montagem. Vou dividir os créditos para os dois pois testando as dicas de cada um, vi que as duas funcionam.

VALEU!!!!
Tópico encerrado , respostas não são mais permitidas