Como faço pra compara se uma HORA é maior que outra???

19/05/2003

0

estou tentando fazer uma comparação para saber se a minh hora atual está entre 2 valores gravados em um banco de dados ....

mas a minha condição nunca é verdade, não sei se estou usando o tipo errado de variavel ou outra coisa ...

o mesmo teste é o seguinte

var
hora:TDateTime;
begin
hora:=time;
DM_Rastreio.Q_Tabela.First;
if (hora>DM_Rastreio.Q_Tabelahora_ini.AsDateTime) and
(hora<DM_Rastreio.Q_Tabelahora_fim.AsDateTime) then
result:= Transforma(DM_Rastreio.Q_Tabeladelay.asinteger);
end;

a minha base de dados é MySQL os campos hora_ini e hora_fim são do tipo ´time´, estou usando DBExpress.

eu coloquei um Watch list e verifiquei que os campos ´DM_Rastreio.Q_Tabelahora_fim.AsDateTime´ estão sempre com valor 0 (Zero)

Com certeza o problema é esse. eu acho q deve ser por causa do AsDateTime. alguem sabe se tem um jeito de eu converter só para HORA?? sem o date...

Ou se acha q pode ser alguma outra coisa.

[]´s


Sousa_thiago

Sousa_thiago

Responder

Posts

29/07/2003

Janete

var
hora:TTime;
begin
hora:=time; // se não func assim coloca Hora:=Now;
DM_Rastreio.Q_Tabela.First;
if (hora>DM_Rastreio.Q_Tabelahora_ini.AsTime) and
(hora<DM_Rastreio.Q_Tabelahora_fim.AsTime) then
result:= Transforma(DM_Rastreio.Q_Tabeladelay.asinteger);
end;

espero q d certo!


Responder

29/07/2003

Rômulo Barros

Tenta o seguinte:

[color=red:ae2da9589a]var
hora,hora_ini,hora_fin:TTime;
begin
hora:=time;
hora_ini := DM_Rastreio.Q_TabelaHora_INI.AsTime;
hora_fin := DM_Rastreio.Q_TabelaHora_fim.AsTime;
DM_Rastreio.Q_Tabela.First;
if (hora>hora_ini) and
(hora<hora_fin) then
result:= Transforma(DM_Rastreio.Q_Tabeladelay.asinteger);
end;[/color:ae2da9589a]


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar