Operaciones con campos con formato hora

Discute sobre las herramientas de la base de datos
Responder
calderon
Mensajes: 35
Registrado: Mar May 23, 2017 12:08 pm

Operaciones con campos con formato hora

Mensaje por calderon »

Muy buenas,

mi consulta es respecto a campos en formato horas con los cuales hay que efectuar operaciones de suma y resta, dando como resultado valores muy superiores a las 24h. Cómo se haría?

Muchas gracias!
OpenOffice 3.1 en Windows 10
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Operaciones con campos con formato hora

Mensaje por RMG »

Hola,

En este enlace te puede ayudar a hacer lo que pides. También puedes adjuntar un pequeño ejemplo para entender mejor tu problema.

http://wiki.open-office.es/Funciones_in ... ffice_Base

Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
calderon
Mensajes: 35
Registrado: Mar May 23, 2017 12:08 pm

Re: Operaciones con campos con formato hora

Mensaje por calderon »

Yo necesito introducir los datos mediante el formato horas y minutos, y visualizar los datos en formato [H]:MM, pero creo haber leído en alguna parte que para poder sumar, restar y en definitiva hacer operaciones se necesita que el campo en cuestión sea numérico y no de hora, ya que con el formato de [H]:MM no funciona como en calc. Es correcto? Lo pregunto de cara a preparar un ejemplo...
OpenOffice 3.1 en Windows 10
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Operaciones con campos con formato hora

Mensaje por RMG »

Hola,

Por eso te he remitido al enlace. Con las funciones de fecha puedes obtener datos numéricos, trabajar con ellos y volverlos a pasar a fecha.

Fíjate sobre todo en la función DATEDIFF.

Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
calderon
Mensajes: 35
Registrado: Mar May 23, 2017 12:08 pm

Re: Operaciones con campos con formato hora

Mensaje por calderon »

el problema es a la hora de almacenarlos, no? me refiero, yo quiero dejar una entrada de 120 para una tarea, y posteriormente ir restando las horas que se han ido realizando. Para informes, formularios y similar, no es práctico que esté en formato decimal, y lo óptimo sería poder visualizar los datos en formato hh:mm. Sin embargo, para trabajar con valores de un registro y hacer operaciones entre registros lo suyo sería utilizar campos puramente numéricos. es correcto?
Gracias!
OpenOffice 3.1 en Windows 10
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Operaciones con campos con formato hora

Mensaje por RMG »

Hola,

Es correcto lo que dices, por eso...
Con las funciones de fecha puedes obtener datos numéricos, trabajar con ellos y volverlos a pasar a fecha.
También puedes adjuntar un pequeño ejemplo para entender mejor lo que quieres hacer.

Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
calderon
Mensajes: 35
Registrado: Mar May 23, 2017 12:08 pm

Re: Operaciones con campos con formato hora

Mensaje por calderon »

Subo adjunto un ejemplo. En dicho ejemplo hay tres tablas. Una es una tabla con trabajadores, otra se corresponde con una asignación de horas por trabajadores, y por último una tabla en la que los trabajadores registran tareas y el tiempo empleado por ellos mismos en cada tarea. Tanto la segunda como la tercera tabla tienen un campo de tipo numérico cuyo formato natural debido al tipo de datos se debe corresponder con el formato [HH]:mm usado en calc ( http://wiki.open-office.es/Formatos_per ... as_en_Calc ). Tal y como sale en el enlace, la característica principal de dicho formato es que no "vuelve a 00:00" una vez superada la cifra 23:59, si no que continúa incrementando las horas sin límite. El fallo se presenta debido a que la asignación de horas es superior claramente a 23:59, tomando valores como 600:00. Así mismo, es necesario poder operar sumando horas y minutos para calcular el tiempo trabajado por el trabajador así como poder restarlo al asignado para saber el tiempo que le queda disponible.

Por ello los requisitos son:
-trabajar en el formulario de registro de tareas y tiempos de trabajo en el formato hh:mm
-trabajar en un posible formulario para la asignación de horas en formato hh:mm
-poder realizar operaciones del tipo suma (y resta), así como posiblemente porcentajes de horas disponibles y porcentaje de horas utilizadas.

No se si me he expresado bien, en caso de tener alguna duda sobre la idea trataré de contestarla lo más rápido posible.

Gracias!
Adjuntos
ejemplo.rar
(10.26 KiB) Descargado 196 veces
OpenOffice 3.1 en Windows 10
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Operaciones con campos con formato hora

Mensaje por RMG »

Hola,

Recuerda que Base no es Calc, sobre todo en el tema de formatos. Como te indique con las funciones se puede hacer de casí todo, solo que hay que dedicarle un poco de tiempo.

En tu archivo ejemplo modificado veras como se puede hacer lo que pretendes ( a mi entender tu problema). Solo debes modificar el tipo de campo donde asignas las horas y minutos y hacerlo VARCHAR (texto).

Veras que he creado varias consultas para que sigas el proceso de conversión de datos para su calculo. Al final he creado una vista por si quieres eliminarlas (de momento no te lo aconsejo por si quieres hacer correcciones).

En fin, espero que esto sea lo que indicabas.

Saludos
Adjuntos
ejemplo1.zip
(14.82 KiB) Descargado 207 veces
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
calderon
Mensajes: 35
Registrado: Mar May 23, 2017 12:08 pm

Re: Operaciones con campos con formato hora

Mensaje por calderon »

Muchas gracias por tu aporte. Lo he estado revisando y lo cierto es que no lo acabo de ver para lo que yo busco. Se me ha ocurrido crear una macro que convierta los números introducidos en un campo enmascarado (de tipo HHHH:MM) a horas en base decimal. Mi idea es copiar el valor de dicho campo como una cadena de texto y tratar de sacar el número equivalente al introducido pero en base decimal y "pegarlo" en otro campo que estará vinculado este último con el correspondiente campo de la tabla. Es posible? alguna idea? Ahora mismo estoy teniendo problemas tal y como comenté en otro hilo con un error de tipo "Error de ejecución de BASIC. Variable de objeto no establecida." . si consigo algún avance más lo comentaré.

Un saludo!
OpenOffice 3.1 en Windows 10
Responder