Funciones de Fecha (buscar la más cercana

Mundo buen día!
¿Existe alguna función para determinar la fecha más próxima a la que traigo?
Ejemplo:
Traigo en una variable el campo (Fecha) 18/09/2019 y tengo que buscar en (FechaCarga) la fecha más cercana a la variable

La función debería mostrarme la que está señalada, es la más cercana.
Alguna ayuda con este tema!
Desde ya muchas gracias.

1 respuesta

Respuesta
1

No existe ninguna función de fecha que haga lo que pidas, pero nada impide que te crees tú tu propia función para que te busque y devuelva ese valor.

Una idea podría ser calcular la diferencia en días y coger la que menor diferencia, en términos absolutos, arroje.

Por ejemplo, en Access podrías hacerlo así:

Public Function fncFechaMasProxima(laFechaObj As Date, laTabla As String, elCampo As String) As Date
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("SELECT TOP 1 " & elCampo & ", Abs(DateDiff('d',[" & elCampo & "],#" & laFechaObj & "#)) AS Diferencia " _
          & "FROM [" & laTabla & "] ORDER BY Abs(DateDiff('d',[" & elCampo & "],#" & laFechaObj & "#)) ASC")
fncFechaMasProxima = rst(0)
rst.Close
Set rst = Nothing
End Function

Y para llamarla tan solo has de poner el nombre de la función, el valor de fecha del que partes, el nombre de la tabla y del campo  donde tienes  las fechas, por ejemplo:

=fncFechaMasProxima(#18/09/2019#,"TablaDatos","FechaCarga")

Un saludo.


¡Gracias!

100% Efectiva la respuesta!

Le sume una whera a la sentencia y me traje varios datos que necesitaba, muchas gracias

Buen día ingeniero!

Estuve probando esa misma función para sql server y no me funciona, me da error de parámetros

¿Será el formato de fecha?

Abs(DateDiff('d',[" & elCampo & "],#" & laFechaObj & "#))

Saludos y mucha gracias

Mi respuesta era una función específicamente creada para VBA de Access, es lógico que si la llevas a SQL Server no te funcione, pues tendrás que adaptar funciones y la forma que llamas a las variables. Pero ahí ya no te puedo ayudar, que SQL no lo domino tanto como Access

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas