Access - CALCULAR LA DIRERENCIA ENTRE DOS FECHAS EN FORMATO DIA, HORA,MINUTOS, SEGUNDOS.

 
Vista:
sin imagen de perfil

CALCULAR LA DIRERENCIA ENTRE DOS FECHAS EN FORMATO DIA, HORA,MINUTOS, SEGUNDOS.

Publicado por JOSE (13 intervenciones) el 23/07/2017 16:36:00
Hola a todos y gracias a la web y a todos aquellos que se interesen en mi pregunta y puedadan o no ayudarme.

Estoy construyendo una base de datos en access 2003 para el registro de opreaciones de bolsa, y necesito un campo el cual calcule el tiempo que he estado en el mercado con la operación activa, es decir cuanto tiempo ha pasado desde que abro la posición hasta que la cierro expresado en dias, horas, minutos y segundos, para el registro de cada operación hay campo de tipo FECHA llamado FECHAEJECUCIONE (FECHA DE EJECUCION DE LA ORDEN DE ENTRADA) EL DATO QUE INTRODUZCO ES EL QUE ME DA LA BOLETA DEL BROKER CUANDO SE EJECUTA LA ORDEN DE ENTRADA, ejemplo: 23/07/2017 09:07:25 (Se Adjunta Boleta para ver el dato) y existe logicamente su contrapartida que es un campo de tipo FECHA al igual que antes llamado FECHAEJECUCIONS (FECHA DE EJECUCION DE LA ORDEN DE SALIDA) Y EL DATO QUE INTRODUZCO ES EL QUE ME DA LA BOLETA DEL BROKER CUANDO SE EJECUTA LA ORDEN DE SALIDA, LO MISMO QUE LO EXPUESTO ANTERIORMENTE, esta seria logicamente la orden de ejecucion de salida o contrapartida para cerrar la operación.

He probado con la funcion DifFecha, pero solo consigo un formato, dias, horas, minutos o segundos, pero solo uno de ellos y lo que yo quiero son todos expresados en un solo dato, es decir me interesa que la respuesta sea asi: 1 dia: 18 horas: 40 minutos: 23 segundos o algo mas abreviado, ejemplo 1:18:40:43 y no como ahora consigo que son o solo 1 dia, o solo 47 horas o solo 3485 minutos o lo mismo en segundos. como he dicho antes adjunto imagenes boletas de entrada y salida para que se aprecie el campo que digo y formulario con un registro en donde aparece el campo que quiero calcular. Quizás haya otra funcion que lo calcule, pero la desconozco.

Gracias anticipadas.
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

CALCULAR LA DIRERENCIA ENTRE DOS FECHAS EN FORMATO DIA, HORA,MINUTOS, SEGUNDOS.

Publicado por Anonimo (3310 intervenciones) el 23/07/2017 19:41:11
No he visto las boletas, los datos utilizados en la respuesta son totalmente aleatorios....

El calculo se genero en la ventana de inmediato, pero funcionara igual en donde se utilice:

.- inventamos una fecha de inicio (que se puede sustituir por la de la boleta)
Inicio = Cdate("1/2/2017 15:31:45")

.- Y una final (que podrá ser sustituida por su homologa en la boleta)
Final = Cdate("20/4/2017 11:55:33")

Las mostramos:
?inicio, final
01/02/2017 15:31:45 ... 20/04/2017 11:55:33

Ya con fechas validas efectuamos el calculo:

?DateDiff("s",inicio ,final)\86400 & " dias " & format (DateDiff("s",inicio ,final)/86400 - DateDiff("s",inicio ,final)\86400 ,"h:nn:ss")
77 dias 20:23:48

Particularmente me gusta mas asi:

?DateDiff("s",inicio ,final)\86400 & " dias " & format (DateDiff("s",inicio ,final)/86400 - DateDiff("s",inicio ,final)\86400 ,"h \h\o\r\a\s nn \m\i\n\u\t\o\s ss \s\e\g\u\n\d\o\s")
77 dias 20 horas 23 minutos 48 segundos
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
sin imagen de perfil

CALCULAR LA DIRERENCIA ENTRE DOS FECHAS EN FORMATO DIA, HORA,MINUTOS, SEGUNDOS.

Publicado por JOSE (13 intervenciones) el 24/07/2017 01:05:18
Hola Anonimo, muchas gracias por tu respuesta, es justo lo que necesito, pero no se como introducirlo en el campo "DURACIONOPERACION" en el FORMULARIO DE OPERACIONES para que me de el resultado, adjunto envio base de datos comprimida en .rar para que veas un par de registros de ejemplo que he puesto por si me puedes ayudar, todos los datos son supuestos y no olvides que la base de datos esta en construcción todavia y seguro que puede que veas fallos que ire mejorando poco a poco.

Un Saludo y muchas gracias.

P.D.: Si ha alguien que no sea Anonimo al cual repito estoy muy agradecido, se le ocurren sugerencias sobre cosas que vean mal en la BD, se aceptan, igualmente si alguien puede aprovechar lo que esta hecho, no hay inconveniente.
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

CALCULAR LA DIFERENCIA ENTRE DOS FECHAS EN FORMATO DIA, HORA,MINUTOS, SEGUNDOS.

Publicado por Anonimo (3310 intervenciones) el 24/07/2017 02:51:01
No encuentro donde esta el problema para adaptar la solución propuesta.

Todo lo expuesto se puede utilizar como origen de datos de un cuadro de texto, solo se necesita que en ese mismo entorno estén las referencias (las fechas inicial y final)

Seria algo como:
= DateDiff("s",inicio ,final)\86400 & " dias " & format (DateDiff("s",inicio ,final)/86400 - DateDiff("s",inicio ,final)\86400 ,"h \h\o\r\a\s nn \m\i\n\u\t\o\s ss \s\e\g\u\n\d\o\s")


Solo hay que sustituir los datos 'inventados' por los reales, únicamente hay que tener muy claro que las fechas inicial y final han de ser 'fechas Access' (si los campos que las contienen son de tipo DATE ... es el tipo correcto)

la sustitución es tan sencilla como esto:
= DateDiff("s",[Campo con la fecha de inicio], [campo con la fecha final])\86400 & " dias " & .........

En caso de que de error de expresión, se sustituye la coma (el separador) por el separador que se aplica en la versión en castellano el punto y coma (;) y no es un error, es una dependencia del formato regional.

= DateDiff("s",[Campo con la fecha de inicio] ; [campo con la fecha final])\86400 & " dias " & .........

Asumí que la experiencia que suponía la utilización de la función DateDiff (traducida ==> DifFecha) no supondría un problema su adaptación al entorno real.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

CALCULAR LA DIFERENCIA ENTRE DOS FECHAS EN FORMATO DIA, HORA,MINUTOS, SEGUNDOS.

Publicado por JOSE (13 intervenciones) el 25/07/2017 01:07:18
Gracias Anonimo, cambie las , por los ; y funciona a la prefección. Solucionado.
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