Función DifFecha

Se aplica a
Access para Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Devuelve un tipo de datos Variant (Long) que especifica el número de intervalos de tiempo entre dos fechas.

Sintaxis

DateDiff(interval, date1, date2[, firstdayofweek][, firstweekofyear])

La DateDiff función tiene estos argumentos:

argumento Descripción
interval Obligatorio. Expresión de cadena que es el intervalo de tiempo que se usa para calcular la diferencia entre date1 y date2.
date1, date2 Obligatorio. Variant (Date). Dos fechas que desea usar en el cálculo.
firstdayofweek Opcional. Constante que especifica el primer día de la semana. Si no lo especifica, se supone que es domingo.
firstweekofyear Opcional. Constante que especifica la primera semana del año. Si no lo especifica, la primera semana es la semana en la que se produce el 1 de enero.

Configuración

El interval argumento tiene esta configuración:

Configuración Descripción
yyyy Año
q Trimestre
m Mes
y Día del año
d Día
w Weekday
ww Semana
h Hora
n Minuto
s Segundo

El firstdayofweek argumento tiene esta configuración:

Constante Valor Descripción
vbUseSystem 0 Usa la configuración de la API NLS.
vbSunday 1 Domingo (predeterminado)
vbMonday 2 Lunes
vbTuesday 3 Martes
vbWednesday 4 Miércoles
vbThursday 5 Jueves
vbFriday 6 Viernes
vbSaturday 7 Sábado
Constante Valor Descripción
vbUseSystem 0 Usa la configuración de la API NLS.
vbFirstJan1 1 Comienza con la semana en la que se produce el 1 de enero (predeterminado).
vbFirstFourDays 2 Comienza con la primera semana que tiene al menos cuatro días en el año nuevo.
vbFirstFullWeek 3 Comienza con la primera semana completa del año.

Observaciones

Puede usar la DateDiff función para determinar cuántos intervalos de tiempo especificados existen entre dos fechas. Por ejemplo, puede usar DateDiff para calcular el número de días entre dos fechas o el número de semanas entre hoy y el final del año.

Para calcular el número de días entre date1 y date2, puede usar Día del año ("y") o Día ("d"). Cuando interval es Weekday ("w"), DateDiff devuelve el número de semanas entre las dos fechas. Si date1 cae un lunes, DateDiff cuenta el número de lunes hasta date2. Cuenta date2 , pero no date1. Sin embargo, si interval es Semana ("ww"), la DateDiff función devuelve el número de semanas del calendario entre las dos fechas. Cuenta el número de domingos entre date1 y date2. DateDiff cuenta date2 si cae en un domingo, pero no cuenta date1, incluso si cae en un domingo.

Si date1 se refiere a un punto posterior en el tiempo que date2, la DateDiff función devuelve un número negativo.

El firstdayofweek argumento afecta a los cálculos que usan los "w" símbolos de intervalo y "ww" .

Si date1 es un date2 literal de fecha, el año especificado se convierte en una parte permanente de esa fecha. Sin embargo, si date1 está entre comillas dobles (" ") y date2 omite el año, el año actual se inserta en el código cada vez que se evalúa la date1 expresión odate2. Esto hace posible escribir código que se puede usar en diferentes años.

Si compara el 31 de diciembre con el 1 de enero del año siguiente, DateDiff para Año ("yyyy") devuelve 1 aunque solo haya pasado un día.

Nota

Para date1 y date2, si el valor de la Calendar propiedad es gregoriano, la fecha suministrada debe ser gregoriana. Si el calendario es Hijri, la fecha suministrada debe ser Hijri.

Ejemplos de consulta DateDiff

Expresión Resultados
SELECT DateDiff("yyyy",#01/01/2010#,[DateofSale]) AS Expr1 FROM ProductSales; Devuelve la diferencia, en años, entre la fecha 01/01/2010 y los valores del DateofSale campo.
SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Devuelve la diferencia, en trimestres según el año natural, entre la fecha del sistema y DateofSale, y la muestra en la DaysSinceSale columna.
SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Devuelve la diferencia, en días, entre la fecha del sistema y DateofSale, y la muestra en la DaysSinceSale columna.
SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Devuelve la diferencia, en días, entre la fecha del sistema y DateofSale, y la muestra en la DaysSinceSale columna.
SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Devuelve la diferencia, en días laborables, entre la fecha del sistema y DateofSale, y la muestra en la DaysSinceSale columna. Si DateofSale cae un lunes, DateDiff cuenta el número de lunes hasta la fecha del sistema. Cuenta la fecha del sistema, pero no el DateofSale valor.
SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Devuelve la diferencia, en las semanas del calendario, entre la fecha del sistema y DateofSale, y la muestra en la DaysSinceSale columna. Cuenta el número de domingos entre DateofSale y la fecha del sistema. Cuenta la fecha del sistema si cae en domingo, pero no cuenta DateofSale, incluso si cae en un domingo.
SELECT DateDiff("h",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Devuelve la diferencia, en horas, entre la fecha del sistema y DateTime, y la muestra en la DaysSinceSale columna.
SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Devuelve la diferencia, en minutos, entre la fecha del sistema y DateTime, y la muestra en la DaysSinceSale columna.
SELECT DateDiff("s",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Devuelve la diferencia, en segundos, entre la fecha del sistema y DateTime, y la muestra en la DaysSinceSale columna.

Usar la función DateDiff en una expresión

Puede usar la DateDiff función en cualquier lugar donde pueda usar expresiones. Por ejemplo, supongamos que tiene un formulario que usa para atender pedidos de clientes. En la tabla Pedidos, tiene un campo denominado ReceiveBefore que contiene la fecha en la que el cliente debe recibir el pedido. Puede usar la DateDiff función con un cuadro de texto en el formulario para mostrar el número de días que quedan antes de que se envíe el pedido.

Suponiendo que se tarda diez días en enviar cualquier pedido, establezca la propiedad Origen del control del cuadro de texto de la siguiente manera:

=DateDiff("d", Now(), [Orders].[ReceiveBefore])-10

Al abrir el formulario en la vista Formulario, el cuadro de texto muestra el número de días que quedan para que se envíe el pedido. Si quedan menos de 10 días para que el cliente necesite recibir el pedido, el número del cuadro de texto es negativo. Indica cuántos días de retraso tendrá el pedido si lo envías inmediatamente.

Usar la función DateDiff en código VBA

En este ejemplo se usa la DateDiff función para mostrar el número de días entre una fecha determinada y hoy.

Dim TheDate As Date  ' Declare variables.
Dim Msg
TheDate = InputBox("Enter a date")
Msg = "Days from today: " & DateDiff("d", Now, TheDate)
MsgBox Msg

Consulte también

Elegir la función de fecha correcta