Visual Basic - problema mu raro con fechas/horas

Life is soft - evento anual de software empresarial
 
Vista:

problema mu raro con fechas/horas

Publicado por Ander (3 intervenciones) el 01/12/2006 18:38:18
Hola a todos/as,
tengo un serio problema a la hora de comparar fechas que no encuentro la respuesta por ningún lado. Estoy haciendo un proyecto para insertar datos modificados desde Excel a Access mediante ADO. Y el problema es el siguiente. La transferencia debe realizarse a partir de una fecha/hora determinada. El problema reside en esas fechas. Ej:

Quiero que la transferencia se haga a partir de la fila que posea una fecha mayor que
20006/10/03 7:30:30. Si la consulta encuentra una fecha p ej 20006/10/03 9:30:30 me realiza la transferencia de la fila. Pero sin embargo si encuentra una fecha 20006/10/03 15:30:30 la transferencia no se realiza. Es decir para mi programa el valor de hora 7 es mayor que el valor de hora 15. Me imagino que es porque el programa solo mira el primer valor de la hora es decir 7>1. Estoy intentando modificar la variable fecha para que en vez de guardar el valor 20006/10/03 7:30:30 me guardarde el valor 20006/10/03 07:30:30. Estoy seguro que con eso se arreglarían todos los males. Una forma es en vez de guardarlo como Date guardarlo como String. Sin embargo al hacer no me da error pero no me compara las fechas.
Resumiendo: hay alguna manera de guardar un valor Date con el primer valor de la hora 0? Ej: 20006/10/03 09:30:30 y no 20006/10/03 9:30:30

Gracias de antemano a todos aquellos que solucionais los problemas de esos otros (como yo) que no somos tan hábiles en el intrigante y a la vez maravilloso mundo de la programación
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:problema mu raro con fechas/horas

Publicado por Mauricio (7 intervenciones) el 01/12/2006 20:20:38
proba convirtiendo las fecha a long en la comparación

ejemp

Dim a As Date
Dim b As Date
Dim c As Long
Dim d As Long

a = "2006/10/03 7:30:30"
b = "2006/10/03 15:30:30"

If CLng(b) > CLng(a) Then
'hago algo
End If
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:problema mu raro con fechas/horas

Publicado por AlbertoV (200 intervenciones) el 02/12/2006 04:49:35
Podrías ver con Format. Probalos en la ventana Inmediato (Control+G)

print format(now,"dd/mm/yy hh:mm")
02/12/06 00:54

print format(now,"dd/mm/yyyy hh:mm")
02/12/2006 00:54

Si ponés una sola h sale sin el primer cero.

print format(now,"dd/mm/yy h:mm")
02/12/06 0:55

En vez de "now" poné la fecha que querés tratar, o la variable donde se encuentre.
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:problema mu raro con fechas/horas

Publicado por Ander (3 intervenciones) el 04/12/2006 12:06:12
Siento decirte Alberto que aunque ponga 2 h´s el programa me sigue cogiendo la variable con 1 h (02/12/06 0:55) . Sigo si resolver el problema asi que si ha alguien se le ocurre alguna idea....Por cierto Mauricio, la comparación la hago dentro de una clausula WHERE y la columna de excel la paso a formato fecha. Mi consulta es algo así. ( La fecha a comparar la tengo guardado en un fichero de texto).
Dim fechaFichero As Date
fechaFichero = Format(CDate(txtIndice.ReadLine, "YYYY/MM/DD hh:mm:ss"))

sConnectBD = "INSERT INTO " & sTablaDestino & " IN " & sConnectBD & " SELECT * FROM " & sTablaOrigen & " WHERE dateValue(Hora) > '" & fechaFichero & "'"
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