Gravar Data com Milisegundos

Delphi

09/07/2003

Pessoal,

Preciso gravar no BD (Firebird) uma string que é uma ´data´ com o formato dd/mm/yyyy hh:nn:ss:zzz (com milisegundos) porem ao converter para DateTime os milesegundos são zerados.

Alguém sabe com fazer esta conversão?

Veja o código:

st_evento = FormatDateTime(´dd/mm/yyyy hh:nn:ss:zzz´, Now());
dt_evento = StrToDateTime(st_evento);

Tenho que gravar dt_evento com milesegundos porém desta forma ele retorna zerado.

Desde já agradeço


Jaqueline

Jaqueline

Curtidas 0

Respostas

Aroldo Zanela

Aroldo Zanela

09/07/2003

Colega,

Use um campo do tipo string.


GOSTEI 0
Jaqueline

Jaqueline

09/07/2003

Aroldo,

Neste caso se gravar a data como string qdo recuperá-la terei que convertê-la para DateTime pois preciso fazer cálculos com a data, gerar relatórios, etc . Assim continuaria com o mesmo problema de zerar os milesegundos...

Se não tiver jeito de configurar algum parêmetro na função StrToDateTime para considerar os milésimos de segundos acho que a melhor forma de resolver o problema seria gravar como double, não acha??

Jaqueline Lima
jaqueap@lupatecnologia.com.br


GOSTEI 0
«leandro»

«leandro»

09/07/2003

Jaqueline,

o firebird aparentemente elimina os milissegundos, mas vc pode usar o campo do tipo timestamp normalmente, dar o insert naquele formato que vc usou mesmo, mas se vc executar um select neste campo o firebird omite os milissegundos, basta usar o cast p/ varchar:

select cast(campo_timestamp as varchar(24)) from tabela

ou se usar um campo do tipo time:

select cast(campo_time as varchar(13)) from tabela


GOSTEI 0
POSTAR