remover String

Delphi

28/04/2005

bom, uso D7 / Interbase, tenho uma tabela chamada Emprestimos, e nessa tabela eu tenho um campo chamado DATA_EMPR, do tipo TIMESTAMP.

nesse campo eu salvo sempre data e hora, mas preciso realizar um calculo somente com a hora que foi gravada nesse campo, entao gostaria de saber se existe um jeito de remover as Strings da data, deixando somente a hora, para a realização do calculo...
abaixo seguem o codigo que comecei a implementar, quem puder contribuir, agradeço...
Abraços galera!
------------------------------------
procedure TEmprestimo.Btn_BaixarClick(Sender: TObject);
var
vdHORA : extended;

begin
vdHORA := DaysBetween(Time, Dm.Tbl_EmprestimosDATA_EMPR.AsDateTime);

if Dm.Tbl_TipoConsultaUNIDADE.AsString = ´Hora(s)´ then
begin
multa := (( vdHORA / StrToFloat(DM.Tbl_TipoConsultaTEMPO.AsString)) * StrToFloat(DM.Tbl_TipoConsultaMULTA.AsString));
end;
end;


Mahdak

Mahdak

Curtidas 0

Respostas

Ericksasse

Ericksasse

28/04/2005

Coloque assim no SELECT:

SELECT CAST(DATA_EMPR AS DATE) FROM EMPRESTIMOS


Desta forma, o campo bem como DATE apenas e não TIMESTAMP.


GOSTEI 0
Mahdak

Mahdak

28/04/2005

amigo, nao entendi, vc esta propondo que eu um select onde?, eu estou querendo apenas que o sistema reconheça a hora la no campo da tabela, e acho que para isso precisarei usar alguma rotina para remover as Strings da Data...
desculpa a minha ignorancia, mais eh que realmente nao entendi o seu conselho...
Abraçao!


GOSTEI 0
Ericksasse

Ericksasse

28/04/2005

Imaginei que você estivesse usando um SELECT para trazer os dados do banco. Mas como não está, infelizmente a minha sugestão não ajuda.

Deixo aqui outra dica, utilizar Table com banco de dados cliente/servidor como o Interbase não é uma boa. Mas isso é um outro assunto..


GOSTEI 0
Marco Salles

Marco Salles

28/04/2005

nesse campo eu salvo sempre data e hora, mas preciso realizar um calculo somente com a hora que foi gravada nesse campo


Eu não sei se entendi bem a sua dúvida.... Voce tem uma variavel Do Tipo TIMESTAMP e necessita somente da Parte Relacionada com as Horas, para efetuar um calculo


Eu particurlamente não sei se o Tipo TIMESTAMP e o mesmo do Tipo TDateTime Do delphi.. [b:62c2d78ece]Se for [/b:62c2d78ece], :idea: :idea: :idea: dou uma dica que talves funcione.

Sabendo que o tipo TDateTime do Delphi é composto de um numero de
ponto Flutuante , onde a parte inteira e relacionado com a data e a parte flutuante e relacionado as Horas

Exemplo :  o Numero 1.5 significa 31/12/1899 as 12:00:00 hrs
                o numero 2.5 significa  01/01/1900 as 12:00:00 hrs
  ............................................................................
               ate chegar a data atual


Então sugiro , que voce tente retirar da Variavel DATA_EMPR a sua paret decimal , que acredito , voce tera as horas

Exemplo:
procedure TForm1.Button1Click(Sender: TObject);
var
  DATA_EMPR:TDateTime;
  data:TDate;
  Hora:TTime;
begin
    DATA_EMPR :=now;
    Data:=Trunc(DATA_EMPR);
   Hora:= DATA_EMPR-DATE;
   showmessage(DateTimeToStr(DATA_EMPR));
   showmessage(DateTostr(Data));
   Showmessage(Timetostr(Hora));
end;


Se funcionar ou não , favor postar para a gente, porque tira tb as nossas Dúvidas.


GOSTEI 0
POSTAR