Si tenes TimeStampInicio y TimeStampFinal, no hace falta que almacenes el tiempo de duración, pues podes obtenerlo así:
Código SQL
[-]
select TimeStampInicio, TimeStampFinal, TimeStampFinal - TimeStampInicio duracion
from tabla
where condiciones;
A este campo, ya en delphi, podes implementarle el evento OnGetText para representar el tiempo transcurrido de la manera que te interesa de la siguiente manera:
Código Delphi
[-]
Procedure form1q1DuracionGetText(var text : string; otrosparametros);
begin
if not form1q1.IsNull then
text := Format('%3.3d:%2.2d:%2.2d', [trunc(q1Duracion.AsFloat * 24),
trunc(frac(q1Duracion.AsFloat * 24) * 60),
trunc(frac(frac(q1Duracion.AsFloat * 24) * 60) * 60)
]);
end;
Probablemente no compile.. eso ya te lo dejo a vos, pero la idea, está clara ¿no?
hasta luego.