Query com datas

MySQL

30/05/2005

Tô aprendendo a lidar com MySql(ADO)... meu sistema fazia com ADO.Access uma pesquisa entre datas. Ex: select * from tblmovimento where dtcadatro between dt1: and dt2; tudo funcionava perfeitamente. Porquê agora que estou usando MySql ele insiste em não medar o resultado corretamente? tenho registros na data de 28/05/2005 e quando executo a consulta, entre 28/05/2005 e 28/05/2005, ele não mostra nada, porém ao executar a consulta com um período maior ele mostra. Ex.: entre 01/05/2005 e 30/05/2005. ai ele mostra o registro do dia 28/05/2005... devo mudar algo? consegui importar os dados do Access para o MySql (13000 registros).
Obrigado !


Alexandretavares

Alexandretavares

Curtidas 0

Respostas

Mysys

Mysys

30/05/2005

QRY.Close;
QRY.Sql.Clear;
QRY.Sql.Add(´´SELECT * FROM TBLMOVIMENTO´);
QRY.Sql.Add(´WHERE DTACADASTRO >= :DataInc´)
QRY.Sql.Add(´AND DTACADASTRO <= :DAtaFin´)
QRY.Params[0].AsDateTime := StrToDate(EditDataInic.TExt)
QRY.Params[2].AsDateTime := StrToDate(EditDataIFin.TExt)
QRY.Open;


GOSTEI 0
Alexandretavares

Alexandretavares

30/05/2005

Essa dica vai funcionar, mesmo sabendo que o MySql grava as datas no formato yyyy-mm-dd ?
Não teria que converter o formato da data antes?


GOSTEI 0
Alexandretavares

Alexandretavares

30/05/2005

tentei usar a sugestão acima, porém, não deu certo.
Alterei o formato da data no Painel de controle para yyyy-mm-dd e em seguida, no form mudei o maskedit para yyyy-mm-dd(ele estava dd-mm-yyyy) ai sim, deu certo... só que eu gostaria que desse certo sem que eu tenha que mudar o padrão de datas do Windows !
Alguém tem outra sugest?

Obrigado!


GOSTEI 0
Bon Jovi

Bon Jovi

30/05/2005

//Via componenentes que retornam TDateTime
QRY.Params[0].AsDateTime := DateTimePicker1.Date;

//Via string
SysUtils.ShortDateFormat := ´yyyy-mm-dd´; //Chame isto no início de tudo do seu programa
QRY.Params[0].AsDateTime := StrToDate(EditDataInic.TExt); //No formato ´yyyy-mm-dd´


GOSTEI 0
POSTAR