diferencia de campos hora y almacenarlo en hora
hola a todos, bien mi pregunta es que tengo dos campos hora y necesito hacer la diferencia entre ellas:
lo que hago es sacar en variables esos 2 campos y luego restarlos, pero me los devuelve en decimal, lo cual necesitaria que qedaran en tipo time, o pasar a time ese valor decimal. Luego necesitaria saber como con consulta sql sumar un cmapo time y como me devolveria el resultado? gracias a todos Bueno tambien quiero saber si al usar un hoursbetween entre dos campos time, por ej: 02:30:00 y 3:00:00 , el resultado seria 1? o me agrega los minutos?, como podria hacer para q me devuelva hora,min y seg para almacenarlo en campo time?gracias de nuevo |
Hola amigo(a) gonza_619, creo que debes de ser más específico(a) y detallista al postear tus dudas, por ejemplo debes comentar si estás usando alguna base de datos y en tal caso especificar cuál de todas?(MySQL,MS sql server,Oracle,PostGree,Firebird,etc):confused:
saludos...:) |
Perdon, estoy usando paradox y necesito hhacer la consulta en sql con query, para sumar campo tipo time, se que directamente no se podria
select sum(hora_entrada) as s from tabla.. como podria solucionarlo? gracias y perdon nuevamente |
Hola gonza.
Revisá este [ enlace ]. En el, roman pone un código de ejemplo para paradox que podés adaptar a tu caso. Saludos. :) |
bien lo probe funciona muestra los segundos pero no sale el encodetime
bien lo quiero mostrar en un edit pero salta error en encodetime= invalid argument to time encode gracias |
Hola gonza.
Mirá, para sacarme la duda hice una tabla con un solo campo: 'Entrada' de tipo TTimeField. Luego cargué aleatoriamente las horas con un for y probé el código puesto por roman. No obtuve ningún error. Esta es la prueba que hice por si te ayuda en algo:
Saludos. :) |
pues bien si salio bien, el problema es que suma la diferencia de horas, pero sirve. ahora tengo una consulta, bueno tengo almacenada horas pero en formato numerico en un campo es decir (1:30:00 = 1,5) bien necesitaria que el 1,5 se muestre como 1:30 al hacer una suma de esa columna numerica, es decir volverlo a tipo hora al resultado de la suma, si por ejemplo la suma da
tot= 20,5 que lo muestre en un edit.text=20:30, se podria? o como seria la cambio de formato? gracias espero puedan ayudarme |
Hola gonza.
Según creo querés pasar un tipo Real a TTime, al menos en Delphi 7 no conozco una función predeterminada para hacerlo. Pero podés pasar todo a milisegundos y sacar hora, minuto y segundos y luego convertir con DecodeDate.
Ejemplo de llamada:
Los milisegundos no los consideré, supongo que para horarios de entrada/salida no serán significantes. Aunque lo podés implementar ampliando un poco el código. Saludos. :) |
La franja horaria es GMT +2. Ahora son las 17:00:43. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi