Décimas o milésimas de segundo

Tengo una aplicación que usa un campo hora larga de access para apuntar la hora de entrada y salida de un rally,
He de intentar que en este campo se pueda poner también las décimas o milésimas, pues si no varios coches pueden entrar en un segundo,
Existe esa posibilidad en estos campos.
Espero impaciente tu respuesta porque hace días que no encuentro nada.

1 respuesta

Respuesta
1
Claro lo único es que debes convertirlo al tipo adecuado, es decir para poder calcular este campo como fecha debes convertilo a fecha o colocarla este valor del campo a una variable tipo date (fecha), o simplemente utilizando esta función:
CDate(NombreCampo)
OJO:esta función la puedes utilizar en una consulta o en código...
Nombre Campo puede ser una variable que capture el valor del campo, y esto lo harás lógicamente antes de hacer de un calculo de fecha..
Att:telemaco
Y al convertir a fecha,
¿No pierdo los decimales?
Gracias telemaco
Telemaco, actualmente hago cálculos en sql, como datedif, ¿esto se haría igual si fuera texto?
Si te entiendo, haber... te puedo tener una solución, el problema es que (o al menos no lo he pensado) no se podrían hacer cálculos entre este campo, y es que dejaras el campo como texto, y podrías crear una mascar de entrada como esta:
00:00:00:00
Así no te coloca problemas al ingresar el dato y guardarlo en tu bd, lógicamente los últimos ceros, corresponderían a las centésimas (de 00 a 99), si necesitas milésimas seria
00:00:00:00:000
Att:telemaco
Si, ese es el problema...
Te tocara hacer lo siguiente, capturar los datos y realizar cálculos Manuales, es decir si necesitas restar, tendrás que tener un procedimiento, donde primero descomponga la hora en partes y empiece por las décimas...
Para eso utiliza la función Right, esta te sirve para capturar una cantidad de caracteres, por ejemplo tienes esta hora:
Hora1 = 09:12:56:34 y
Hora2 = 09:12:56:89
De acuerdo a las operaciones con horas, debes empezar por las menores hasta llegar a las horas, entonces debes capturar las centésimas, Entonces:
RIGHT(Hora1, 2)
RIGHT(Hora2, 2)
Te captura 34 y 89
Para restarlos puedes utilizar:
RestCent = Val(RIGHT(Hora1,2)) - Val(RIGHT(Hora2,2))
SI TE DA NEGATIVO, debes restar 1 a los segundos, porque significa que quito un segundo más...
Ahora para capturar los segundos:
Resseg = Val(Mid(Hora1, 7,2)) - Val(Mid(Hora2, 7,2))
Pero si RestCent fue negativo entonces:
Resseg = Val(Mid(Hora1, 7,2)) - Val(Mid(Hora2, 7,2))
If RestCent < 0 then
Resseg - 1
end if
Y lo mismocon todas las partes, a lo ultimo debes concatener todas las restas con el valor absoluto de cada una de ellas (Abs(RestCent)), para que no te de nada negativo...
En opocas palabras captura cada parte de la hora para realizar las operacines necesarias..
Att:telemaco
Buf, no se como lo haré porque ya tengo las consultas hechas con datediff y seria un jaleo esto que propones, pero muchas gracias por tu respuesta. Y hasta pronto.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas