Ver Mensaje Individual
  #1  
Antiguo 04-02-2005
Choclito Choclito is offline
Miembro
 
Registrado: jul 2004
Posts: 169
Reputación: 20
Choclito Va por buen camino
Question Problemas al restar campos timestamp en Proc. Almacenado

Hola amigos del foro, nuevamente les pido su muy valiosa ayuda esta vez el problema q tengo es el siguiente
Quiero hacer el registro del tiempo que utiliza un determinado usuario del sistema q ya desarrolle, para eso tengo una tabla
bitacora (
login varchar (15),
fecha_ingreso timestamp,
fecha_salida timestamp,
duracion timestamp,
activo char (1))
donde login es llave foranea, primero hice un proc almacenado para registrar al usuario y la fecha hora que ingresa el problema q tengo es q hice otro pra registrar a que hora sale del sistema y para eso hice lo siguiente:
/*En Ibexpert*/
begin
select b.login
from bitacora b
where (( b.login=:login))into :log;
if (:log is not null) then
begin
update bitacora set
bitacora.fecha_salida=current_timestamp,
bitacora.duracion=cast (current_timestamp-bitacora.fecha_ingreso as timestamp),
bitacora.estado='D'
where (( bitacora.login=:log) and (bitacora.estado='A'));
end
end

pues bien ejecutando el proc almacenado me sale el siguiente error:

Overflow occurred during data type conversion.
conversion error from string "3.263009259".

Ahora nose en que estoy errando o talves es en definir como char o como varchar el campo duracion, o la definicion de los campos fecha_ingreso y fecha_salida pero al hacer me sale de igual forma el error

Me gustaria q el resultado me salga algo asi como :
2:33:12 que indique 2 horas 33 minutos y 12 segundos

Antetodo muchas gracias por la ayuda que me brinden, o talves lo que hice esta mal asi y si fuese asi quisiera porfavor que me indicen otra forma de realizar lo que quiero hacer
Nuevamente muchas gracias por la ayuda que me brinden
Responder Con Cita