![]() |
sql server entero a time
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... |
Cita:
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'
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) en delphi puedes utilizar esto 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:p:D |
Hola, gracias por tu respuesta, lamentablemente estas tablas se han venido utilizando desde mucho antes que yo llegara aqui, y como mencioné en mi post anterior las horas de entrada y salida se almacenan en campos de tipo entero, la fecha esta almacenada en un campo aparte.
Algo que seria facil, aunque no se si exista es un cast que convierta mi entero 10.2 por ejemplo, a 10:20:00 (formato time, sin date) :confused: Con esto ya podria yo realizar la resta entre 2 times. Espero haberme dado a entender, recordar que quiero hacerlo solo mediante SQL, sin involucrar delphi por el momento. Edito: Lo pense, y si me interesa tambien saber como convertir un dato decimal (hasta ahora habia dicho entero y puesto ejemplos con decimales duuuh, disculpen ustedes) a la parte time de un campo datetime :confused:. Espero haberme dado a entender y muchas gracias... |
|
amigo poliburro, otra vez estoy con cara de :eek:
interesante procedimiento... no me termina de cuadrar: Cita:
Ten cuidado porque 10.2 no es 10 horas, 20 minutos. Por ejemplo: 10.5 no son 10 horas, 50 minutos, son 10 horas, 30 minutos. |
Cita:
:P bueno eso entendí jajaja ya nos lo aclarará el compañero |
Buena función poliburro...
la dejaré anotada, al menos me sirve gran parte de ella Salu2:p:D |
Asi es, poliburro entendió muy bien, con 10.20 me referia a 10 horas 20 minutos... Lo que 10.20 era un entero lo aclare en mi post anterior dedicandome a mi mismo un merecido duuuuuuuuh
y poliburro disculpa pero esto es un poco avanzado para mi.. cualquier combinacion de horas que ingrese a la funcion me da siempre el mismo resultado (06:25:00). Tal vez estoy haciendo algo mal. si no es mucha molestia me la podrias explicar un poco, como funciona, para asi poder adaptarla yo a mis necesidades. Muchas gracias. |
¿cambiaste el 10.40 y el 16.55 o solo hiciste "copiar y pegar"?
|
ok me volvi a explicar mal, quiero decir que con los valores que ingreso poliburro a la funcion 16.55 - 10.40 el resultado seria
6:15 no??.. donde quedaron los otros 10 minutos? cuando trato con 16.45 - 10.00 me da como resultado 06:75:00 por eso pido de favor, si tienen tiempo explicar un poco la funcion para poder yo adaptarla ya que no me esta dando los resultados deseados, y como tambien dije antes, puede ser que esté haciendo algo mal yo. Gracias. |
Cita:
|
poliburro podrias leer el post #10 de este hilo, como menciono el problema no era sustituir las horas con los parametros @ValHoraIni o @ValHoraFin, eso si lo hice desde un principio. Pero los resultados aun son un poco extraños, como 16.45 - 10.00 = 06:75:00
espero no ser mucha molestia pero trato de entender los calculos que hiciste y hacer modificaciones pero no he podido llegar a un buen resultado. |
Cita:
|
excelente, muchas gracias a todos.
|
Cita:
saludos |
míralo, míralo, siempre de golosote
:D |
Cita:
Bueno bueno, es que el apetito no se apacigua, que le hacemos? jajajaja |
| La franja horaria es GMT +2. Ahora son las 03:12:50. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi