![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
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... |
#2
|
||||
|
||||
![]() 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 ![]() ![]()
__________________
BlueSteel |
#3
|
||||
|
||||
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) ![]() 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 ![]() Última edición por Gaim2205 fecha: 05-06-2008 a las 19:56:30. |
#4
|
||||
|
||||
__________________
Conoce mi blog http://www.edgartec.com Última edición por poliburro fecha: 05-06-2008 a las 23:21:01. Razón: error |
#5
|
||||
|
||||
amigo poliburro, otra vez estoy con cara de
![]() 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.
__________________
|
#6
|
||||
|
||||
Cita:
:P bueno eso entendí jajaja ya nos lo aclarará el compañero
__________________
Conoce mi blog http://www.edgartec.com |
#7
|
||||
|
||||
Buena función poliburro...
la dejaré anotada, al menos me sirve gran parte de ella Salu2 ![]() ![]()
__________________
BlueSteel |
#8
|
||||
|
||||
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. Última edición por Gaim2205 fecha: 05-06-2008 a las 22:51:55. |
#9
|
||||
|
||||
¿cambiaste el 10.40 y el 16.55 o solo hiciste "copiar y pegar"?
__________________
|
#10
|
||||
|
||||
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. |
#11
|
||||
|
||||
tienes razón, ya corregí la función en el post inicial, vuelve a copiarla y compilarla ya debe funcionar.
__________________
Conoce mi blog http://www.edgartec.com |
#12
|
||||
|
||||
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. |
#13
|
||||
|
||||
Si checas bien el código actual tiene dos correcciones más :P, por favor vuelve a copiarlo y compilarlo en tu motor y pruebalo nuevamente. A mi me está funcionando bien
__________________
Conoce mi blog http://www.edgartec.com |
#14
|
||||
|
||||
excelente, muchas gracias a todos.
|
#15
|
||||
|
||||
Amigo es un gusto ayudar, y si tienes más consultas, psss echalas echalas aca les echamos montón :P
saludos
__________________
Conoce mi blog http://www.edgartec.com |
#16
|
||||
|
||||
míralo, míralo, siempre de golosote
![]()
__________________
|
#17
|
||||
|
||||
Bueno bueno, es que el apetito no se apacigua, que le hacemos? jajajaja
__________________
Conoce mi blog http://www.edgartec.com |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Time Server Indy | pablonill | Servers | 0 | 02-04-2008 14:19:52 |
Lock time out SQL Server connection timed out | delphisenda | Varios | 2 | 20-09-2007 21:23:07 |
Crear dll para un programa del que no tengo entero el código fuente entero | seduerey | Varios | 1 | 02-05-2007 13:58:08 |
Obtener el time y date del server... | uper | Firebird e Interbase | 1 | 11-03-2005 15:49:12 |
De entero a hexa, y hexa a entero (o string) | emeceuy | Varios | 5 | 02-06-2004 18:23:13 |
![]() |
|