Consulta SQL em Tabela Access por Data.......me ajuda

Delphi

12/12/2003

Tenho um Tabela de Cliente em Access.......Com ( Nome,Endereço,CEP,.............Data )...........O problema e que a DATA , só fica como Data/Time .......Eu quero fazer uma consulta entre duas Data eu uso estes comando abaixo na Propriedade SQL da Query......

SELECT *
FROM Cliente
WHERE Data BETWEEN:data1 AND:data2

................Quando vou passar o Param da DATA para Date não aceita.....da varios problemas ..........Alguem suber me ajuda....[ ]s...Jairo


Jairo-go

Jairo-go

Curtidas 0

Respostas

Silvio

Silvio

12/12/2003

Jairo deixa eu ver se entendi
No Seu Banco o Campo data esta como tipo data certo.

Quando vc cadastro um registro vc informa só a data (ex.: 12/12/2003)Certo mas quando salva em seu banco fica (ex 12/12/2003 16:30:20) até ai tudo bem e quando voce vai fazer aconsulta a qual vc disse. Que esta correta. Na opção de Param vc esta colocando data1 e data2 como tipo date.

Pode esta acontecendo o seguinte vc deve colocar no BD no Campo Data o tipo date e Formato coloca ´dd/mm/aaaa´ assim quando salvar salvara apenas data. então não tera problema com a hora. agora se vc precisar da hora também no campo vc deve colocar no param no campo Data1 e Data2 o tipo como DataTim.

Jairo caso ficou confuso de mas detalhes como esta no seu bd e como esta a sua consuta completa e o tipo que esta utilizando no campo Paramns da Query

Silvio - GO Capital


GOSTEI 0
Maicongabriel

Maicongabriel

12/12/2003

Experimente colocar (#) no inicio e no fim da data.

´´ + FormatDateTime(´MM/DD/YYYY´, Date) + ´´


Parece extranho, mas eu já tive esse problema e encontrei o seguinte no help do próprio Access :arrow:

O próximo exemplo cria o mesmo objeto QueryDef, utilizando um valor armazenado em uma variável. Observe que os sinais numéricos () que denotam os valores de data precisam estar incluídos na seqüência para serem concatenados com o valor da data. ...



GOSTEI 0
Ztiago

Ztiago

12/12/2003

Estava com o mesmo problema, em vez de você fazer por parâmetros faça o seguinte:

´ select * from tbl_movbanc where data between ´´ + dinicio + ´´ and ´´ + dfinal + ´´ order by data ´;

acredito que com isso funcione...


GOSTEI 0
Ilanocf

Ilanocf

12/12/2003

Faça da seguinte forma:

[color=red:de1af5d51c][b:de1af5d51c]With SuaTabela Do
Begin
Close;
SQL.Clear;
SQL.Add(´SELECT * FROM Cliente´);
SQL.Add(´WHERE Data>=:P1 AND Data<=:P2´);
SQL.Add(´ORDER BY Nome, Data´);
Parameters.ParamByName(´P1´).Value:=MaskEdit1.Text;
Parameters.ParamByName(´P2´).Value:=MaskEdit2.Text;
Open;
End;[/color:de1af5d51c][/b:de1af5d51c]

Desta forma vc poderá criar qualquer tipo de consulta com mais facilidade e o sistema poderá entender estas linhas com mais rapidez e facilidade.

Espero ter ajudado,

Ilano.


GOSTEI 0
POSTAR