Fórum Consultar Campo do Tipo TimeStamp #315401
08/03/2006
0
tenho um campo chamado Hora_I(TimeStamp)em um tabela do meu banco de dados (Interbase), e gostaria de fazer uma consulta a esse campo indicando apenas a data em uma consulta por exemplo:
os dados no campo ficam assim: [i:44d607f792][b:44d607f792]07/03/2006 15:54:10[/b:44d607f792][/i:44d607f792] por exemplo.
e na hora da consulta quero informar apenas a data e quero que ele me retorne os dados daquele dia, tentei assim:
With DM, QYLOCACOES do begin Close; SQL[1]:=´WHERE HORA_I BETWEEN :Di AND :Df AND CLIENTE=:CODCLI´; Prepare; ParamByName(´CODCLI´).AsInteger := _IdCliente; ParamByName(´Di´).AsDateTime := DateTimePicker1.DateTime; ParamByName(´Df´).AsDateTime := DateTimePicker2.DateTime; Open; end;
mais quando eu seleciono as duas datas iguais ele não me retorna nada como resposta, mesmo escolhendo uma data que existe na base.
também tentei assim:
With DM, QYLOCACOES do begin Close; SQL[1]:=´WHERE HORA_I >=:Di AND HORA_I <=:Df AND CLIENTE=:CODCLI´; Prepare; ParamByName(´CODCLI´).AsInteger := _IdCliente; ParamByName(´Di´).AsDateTime := DateTimePicker1.DateTime; ParamByName(´Df´).AsDateTime := DateTimePicker2.DateTime; Open; end;
e deu no mesmo
e ai :wink:
Paullsoftware
Curtir tópico
+ 0Posts
08/03/2006
Adriano Santos
procedure ... var DtIni, DtFim : TDateTime; begin DtIni := DateTimePicker1.Date + ´00:00:01´; DtFim := DateTimePicker2.Date + ´23:59:59´; With DM, QYLOCACOES do begin ... ParamByName(´Di´).AsDateTime := DtIni; ParamByName(´Df´).AsDateTime := DtFim; ... end; end;
Gostei + 0
08/03/2006
Adriano Santos
procedure ... var DtIni, DtFim : TDateTime; begin //Só uma coisa, precisa dar espaço na concatenação da hora. DtIni := DateTimePicker1.Date + ´ 00:00:01´; DtFim := DateTimePicker2.Date + ´ 23:59:59´; end;
Gostei + 0
08/03/2006
Paullsoftware
ficou assim meu código:
with DM,QYLOCACOES do begin DiaIni := dtp1.Date + StrToTime(´ 00:00:01´); DiaFim := dtp2.Date + StrToTime(´ 23:59:59´); Close; SQL[1] := ´WHERE Upper(PC_NOME) STARTING WITH :PC AND HORA_I >=:Di AND HORA_I <=:Df ´; SQL[2] := ´ORDER BY PC_NOME ´; ParamByName(´PC´).AsString := EditPesquisa.Text; ParamByName(´Di´).AsDateTime := DiaIni; ParamByName(´Df´).AsDateTime := DiaFim; Open; end;
alguém tem outra ideia? :roll:
Gostei + 0
08/03/2006
Adriano Santos
with DM,QYLOCACOES do begin DiaIni := dtp1.Date + StrToTime(´ 00:00:01´); DiaFim := dtp2.Date + StrToTime(´ 23:59:59´); Close; SQL[1] := ´WHERE Upper(PC_NOME) STARTING WITH :PC AND HORA_I >=:Di AND HORA_I <=:Df ´; SQL[2] := ´ORDER BY PC_NOME ´; ParamByName(´PC´).AsString := EditPesquisa.Text; ParamByName(´Di´).AsDateTime := DiaIni; ParamByName(´Df´).AsDateTime := DiaFim; Open; end;
Cara tenta usar SQLTimeStamp no lugar de AsDateTime, ou você pode tentar assim
DiaIni := FormatDateTime(´DD/MM/YYYY HH:NN:SS´,dtp1.Text + ´ 00:00:01´); DiaFim := FormatDateTime(´DD/MM/YYYY HH:NN:SS´,dtp2.Text + ´ 23:59:59´);
Gostei + 0
08/03/2006
Paullsoftware
Correção:
DiaIni := FormatDateTime(´DD/MM/YYYY HH:NN:SS´, StrToDateTime(dtp1.Text + ´ 00:00:01´)); DiaFim := FormatDateTime(´DD/MM/YYYY HH:NN:SS´,StrToDateTime(dtp2.Text + ´ 23:59:59´));
Valeu Adriano, meu código ficou assim:
With DM, QYLOCACOES do begin Close; SQL[1]:=´WHERE HORA_I BETWEEN :Di AND :Df AND CLIENTE=:CODCLI´; Prepare; ParamByName(´CODCLI´).AsInteger := _IdCliente; ParamByName(´Di´).AsString := FormatDateTime(´dd/mm/yyyy 00:00:01´, DateTimePicker1.Date); ParamByName(´Df´).AsString := FormatDateTime(´dd/mm/yyyy 23:59:59´, DateTimePicker2.Date); Open; end;
Valeu! :wink:
Gostei + 0
08/03/2006
Adriano Santos
[]s :wink:
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)