Access - Restar dos campos Hora corta en una consulta

 
Vista:

Restar dos campos Hora corta en una consulta

Publicado por Sera (4 intervenciones) el 03/02/2004 13:59:49
Necesito generar un informe con la hora de inicio de un trabajo, hora de finalización y en el informe tiene que salir un valor que refleje el TOTAL DE HORAS, es decir, que TOTAL HORAS = (HORA FINALIZACION - HORA INICIO) , tanto HORA FINALIZACION como HORA INICIO son campos de formato "Hora corta". ¿como se hace porque el resultado que me da es absurdo?

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Restar dos campos Hora corta en una consulta

Publicado por Pancho (149 intervenciones) el 03/02/2004 14:21:21
Hola

Para calcular la diferencia en horas entre dos fechas se transforma cada valor en segundos luego los restas y la diferencia en segundos la transformas de nuevo en horas.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Restar dos campos Hora corta en una consulta

Publicado por Sera (4 intervenciones) el 03/02/2004 17:43:03
¿Pero ese calculo donde lo tengo que realizar? ¿en el campo del resultado de ese dato en el informe?¿en la consulta de la que recibe la información el informe?.

Llevo poco tiempo trabajando con esto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Restar dos campos Hora corta en una consulta

Publicado por Pancho (149 intervenciones) el 03/02/2004 19:22:07
Hola

Crea una funcion en VBA pasando la hora inicial y final como parametros y la asignas en un campo tipo formula o de resultado como quieras por cierto hay una funcion que te agiliza un poco las cosas se llama DateDiff()

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Restar dos campos Hora corta en una consulta

Publicado por guiland (16 intervenciones) el 04/02/2004 01:47:01
Hola,, espero que esto te ayude:
Dias: DifFecha("a",[FechaIni],[FechaFin])
Horas_Minutos: Formato([Horaini]-1-[Horafin],"Hora corta")
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Restar dos campos Hora corta en una consulta

Publicado por DANIEL (1 intervención) el 25/08/2017 04:05:48
que tal yp tengo el mismo problema, pero no se donde meter eso al restar los dos campo pongo 02:47- 02:50 me debe de dar 00:03 pero me sale 00:00 no se como arreglarlo me podrian ayudar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Restar dos campos Hora corta en una consulta

Publicado por Anonimo (3315 intervenciones) el 25/08/2017 12:29:18
Te recomiendo que leas lo que sigue con atención y ... unas cuantas veces para extraer correctamente su contenido, no hay nada que no este claramente explicado en ese (al parecer) 'libro maldito' que es la ayuda de Access (por cierto: veraz y gratuita, asi como dispuesta a responder a la tecla F1).
..................................



Para que Access reconozca a esos números o textos (porque en principio para Access solo eso serán) como datos de tipo fecha/hora, hay que indicárselo (decirle que son datos de tipo DATE para Access), asi los trataría de forma adecuada.

Lo mas sencillo es utilizar los medios disponibles en Access, las funciones de dominio integradas, en particular la función CDate que convierte ese tipo numero complejo en 'una fecha Access'.

Por ejemplo asi como origen para un cuadro de texto:
= CDate("02:47") - CDate("02:50")

Quiero destacar que espera como dato un TEXTO que interpretara como fecha (si esta fecha es razonable, por ejemplo no entenderá 30/2/2017 ==> treinta de febrero del año 2017 como una fecha correcta o si la parte horaria es mayor que 23 o minutos/segundos mayores que 59 )

Si tenemos unos cuadros de texto (Hora_1 y Hora_2) en la introducimos un texto que representen fracciones de tiempo (sean horas días o años), lo anterior de podría escribir asi:
= CDate([Hora_1]) - CDate([hora_2])

Es probable que devuelva un numero ya que para Access las 02:47 ==> 0,115972222222222 (para Access la unidad es el día, la hora una fracción del día)
Pero tiene una solución sencilla, le indicamos en el FORMATO del cuadro de texto que lo presente con formato de fecha (equivale a esto):
Format( 0,115972222222222,"hh:nn") ===> 02:47

Si no se indica que los datos son fechas (se convierten a fechas con cualquiera de las opciones que Access ofrece) la interpretación dependerá 'del humor de Access' (esto es: de como interprete el entorno de trabajo) y puede interpretar una operación matemática:
= Val("02:47") - Val("02:50")

Y como la función VAL no reconoce los dos puntos como una cifra se queda con (02) en ambas conversiones y desde siempre 2 - 2 = 0
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar