remover String
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;
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
Curtidas 0
Respostas
Ericksasse
28/04/2005
Coloque assim no SELECT:
Desta forma, o campo bem como DATE apenas e não TIMESTAMP.
SELECT CAST(DATA_EMPR AS DATE) FROM EMPRESTIMOS
Desta forma, o campo bem como DATE apenas e não TIMESTAMP.
GOSTEI 0
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!
desculpa a minha ignorancia, mais eh que realmente nao entendi o seu conselho...
Abraçao!
GOSTEI 0
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..
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
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