carla_his 0 Denunciar post Postado Março 6, 2007 Pessoal,Eu tenho uma tabela em interbase que possui um campo timestamp (data e hora)Em delphi eu preciso varrer os registros desta tabela subtraindo a data atual e data que esta no campo timestamp.eu preciso fazer a diferenca entre estas datas para verificar se eu tenho algum registro que a diferenca é mair que 20 minutos.Alguém pode me ajudar Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Março 6, 2007 Uma das formas seria: procedure TForm1.BitBtn1Click(Sender: TObject);var dtHora1, dtHora2: TDateTime; aux: string;begindtHora1:=StrToDateTime('06/03/2007 10:00:00');dtHora2:=StrToDateTime('06/03/2007 10:23:00');aux:=TimeToStr((dtHora2 - dtHora1));if ((StrToTime(aux)) > StrToDateTime('00:20:00')) then ShowMessage('Maior');end; Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Março 6, 2007 Seu comando table1.Next; está fora do bloco do while, tente assim: type TForm1 = class(TForm) Table1: TTable; Table1AUX_TIME: TDateTimeField; procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1; dtHora1, dtHora2, data1, data2: TDateTime; aux: string;implementation{$R *.DFM}procedure TForm1.FormCreate(Sender: TObject);begintable1.Open;data2:=Now;while not(table1.eof) do begin data1:=table1.FieldByname('AUX_TIME').AsDateTime; dtHora1:=StrToDateTime('data1'); dtHora2:=StrToDateTime('data2'); aux:=TimeToStr((dtHora2 - dtHora1)); if ((StrToTime(aux)) > StrToDateTime('00:20:00')) then ShowMessage('Maior') else ShowMessage('Menor'); table1.Next; //<- Dentro do bloco end;end;end. Compartilhar este post Link para o post Compartilhar em outros sites