Cita:
Empezado por Gaim2205
Hola amigos, tengo una tabla donde se almacenan horarios de entrada y salida de trabajadores y quiero hacer una simple resta hora de entrada - hora de salida. El problema es que estos datos estan almacenados en campos de tipo entero por lo que una resta, por ejemplo:
19.00 - 8.20 = 10.8
y lo que yo quiero es obviamente que me devuelva en formato tiempo.
19.00 - 8.20 = 10.40 (diez horas, cuarenta minutos)
como puedo hacer esto con instrucciones sql en sql server 2000??
Muchas Gracias...
|
Creo que debes convertir el entero a tipo hora... y realizar la resta de las horas con algun parametro
Yo lo que realizo es almacenar la fecha y hora en un mismo campo....si bien los datos que me llegan de la captura son de tipo string y entero, los transformo de la sgte forma
Con la siguiente funcion convierto los datos que vienen así
Fecha : 20080605
Hora :1341
a esto '06/06/2008 13:41:00'
Código Delphi
[-]
cYear := StrToInt(Copy(DTexto.FieldByName('Fecha').asString,1,4));
cMes := StrToInt(Copy(DTexto.FieldByName('Fecha').asString,5,2));
cDia := StrToInt(Copy(DTexto.FieldByName('Fecha').asString,7,2));
cHora := StrToInt(Copy(DTexto.FieldByName('Hora').asString,1,2));
cMinuto := StrToInt(Copy(DTexto.FieldByName('Hora').asString,3,2));
cFecha := encodedate(cYear, cMes, cDia);
cTime := encodetime(cHora, cMinuto, 0, 0);
ReplaceTime(cFecha, cTime);
desde SQL utilizo lo siguiente para separar la fecha y la hora del campo Fecha (Acuerdate que la fecha y la hora estan en el mismo campo)
Código SQL
[-]
CONVERT(Char(10), Hor_Fecha, 103) As Fecha
CONVERT(Char(8), Hor_Fecha, 108) As Hora'
en delphi puedes utilizar esto
Código Delphi
[-]MinutesBetween(Sal2,Ent2)
lo que te devolverá la cantidad de minutos que hay entre 2 horas (despues realizas el calculo de cuantas horas y minutos corresponderian...
Bueno, espero que esto te sirva.. o al menos te oriente
Salu2

