Programación General > Bases de Datos
Comparar Fechas En Formato String
Dieguinho.:
Buenas, vengo por aqui por ayuda...
Necesito traer de la base de datos con la que trabaja mi aplicacion registros que cumplan con la siguiente condicion:
si por ej. le paso la fecha martes 24/10/2006 me tiene que traer todos los registros que esten entre el dia anterior a partir de las 15hs y el mismo dia hasta las 15hs.
El problema surge que cuando veo en la base, que ya estaba armada, que el dia y la hora estan en campos diferentes y ambos con el formato string.
Por lo tanto me toma por ej. que la fecha 29/01/06 es mayor a la fecha 05/06/06, cuando en realidad no es asi.
A alguien se le ocurre la manera para poder hacer lo que quiero sin tener que modificar la base de datos????
Quiza es una estupidez mi pregunta pero ahora no se me ocurre nada.
Saludos.
F_Tanori:
que base de datos es?
RadicalEd:
A ver una solución seria coger (coger es con 'g' sierto :huh: ???) por medio de Mid los datos e irlos comparando mes con mes y dia con día, sabiendo que mes 06 > 01, 'tonces la primera validación seria la del mes y si esta se cumple salta, y sino se compara el día.
Me hago entender????
Algo así:
--- Código: Text ---Private sub Compara(fecha1 As String, fecha2 As String)On Error Resume NextDim mes1, mes2, dia1, dia2 As Stringdia1 = Mid(fecha1,1,2)dia2 = Mid(fecha2,1,2)mes1 = Mid(fecha1,4,2)mes2 = Mid(fecha1,4,2)If Val(mes1) > Val(mes2) Then If Val(dia1) > Val(dia2) Then 'Alguna cosa End IfEnd IfEnd Sub
cpmario:
Tambien puedes convertir la cadena de texto que tiene la fecha a una variable de fecha (Date) con la función Cdate por ejemplo:
--- Código: Text ---Sub CVDate() Dim strFecha1 As String Dim strFecha2 As String Dim datFecha1 As Date Dim datFecha2 As Date strFecha1 = "29/01/06" strFecha2 = "05/06/06" datFecha1 = CDate(strFecha1) datFecha2 = CDate(strFecha2) If datFecha1 > datFecha2 Then MsgBox "La fecha " & strFecha1 & " es mayor que " & strFecha2 Else MsgBox "La fecha " & strFecha1 & " es menor que " & strFecha2 End If End Sub
:comp:
RadicalEd:
--- Cita de: "cpmario" --- Tambien puedes convertir la cadena de texto que tiene la fecha a una variable de fecha (Date) con la función Cdate por ejemplo:
--- Código: Text ---Sub CVDate() Dim strFecha1 As String Dim strFecha2 As String Dim datFecha1 As Date Dim datFecha2 As Date strFecha1 = "29/01/06" strFecha2 = "05/06/06" datFecha1 = CDate(strFecha1) datFecha2 = CDate(strFecha2) If datFecha1 > datFecha2 Then MsgBox "La fecha " & strFecha1 & " es mayor que " & strFecha2 Else MsgBox "La fecha " & strFecha1 & " es menor que " & strFecha2 End If End Sub
:comp:
--- Fin de la cita ---
mmm mucho mejor Gracias cpmario :smartass: :smartass:
Navegación
[#] Página Siguiente
Ir a la versión completa