Pregunta: | 42455 - COMO HAGO OPERACIONES CON LA HORA |
Autor: | hector P. R. |
como puedo hacer operaciones con la hora ejemplo una resta de 14:30 p. m. menos 12:25 p. m. se puede hacer esta ejecucion? |
Respuesta: | Alejo Landini |
hector: tanto la fecha como la hora en el sistema son numericos del timpo single. basta con restar matematicamente te doy un ejemplo que te calcula directamente en una consulta de access la diferencia horaria de dos campos con formato fecha y hora: SELECT Tabla1.h1, Tabla1.h2, cdate( [h2]-[h1]) AS Resultado FROM Tabla1; la funcion cdate() lo unico que hace es darte el resultado con fromato de fecha y hora. salu2 |
Respuesta: | Fernando Serantes |
Resta las horas sin inconvenientes utilizando variables, un campo de salida de una consulta o un form, por ej: tiempo: horafinal-horainicial . Access internamente utilizara la numeracion de la hora. Luego pudes utilizar las fumciones de hora, minuto y segundos para averiguar cuantas horas minutos o segundos le corresponden a esa resta. ej: tiempo: horafinal-horainicial horastiempo: hora(tiempo) minutostiempo: minuto(tiempo) segundostiempo: segundo(tiempo) resultadofinal: horastiempo & ":" & minutostiempo & ":" & segundostiempo si sumas varias horas, minutos y segundos por separado Es decir que usas 3 campos o variables horast; minutost y segundost por separado para calcular subtotales, ej HFinal HInicial Ht Mt St 13:29:55 - 12:10:40 1 19 15 14:31:40 - 13:42:40 0 49 00 acces te las sumara sin tener en cuenta que cada 60 seg debe contar 1 min, etc.. totales 1 68 15 ten en cuenta luego de dividirlas luego por 60 y trasladar su respectiva suma. totales hora: ent(Suma(Ht))+ ent(Suma(Mt)/60 ) minutos: ent(Suma(Mt))+ ent(Suma(St)/60 ) segundos: etc la funcion final seria algo asi THor: Ent((Suma([Hor]))+(Ent((Suma([Min]))/60))) TMin: Ent(((((Suma([Min]))+(Ent(Suma([Seg])/60)))/60)-(Ent((((Suma([Min]))+(Ent(Suma([Seg])/60)))/60))))*60) TSeg: Ent((Suma([Seg]))-(Ent(Suma([Seg])/60)*60)) |