Función DifFecha

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

Devuelve una variante (largo) 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 usa para calcular la diferencia entre date1 y .date2
date1, date2 Obligatorio. Variant (Date). Dos fechas que desee utilizar en el cálculo.
firstdayofweek Opcional. Constante que especifica el primer día de la semana. Si no lo especifica, se asume 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 estas configuraciones:

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 estas configuraciones:

Constante Valor Descripción
vbUseSystem 0 Usa la configuración de API de 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 API de NLS.
vbFirstJan1 1 Empieza por 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 nuevo año.
vbFirstFullWeek 3 Empieza 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 usarlo 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"). When interval is Weekday ("w"), DateDiff devuelve el número de semanas entre las dos fechas. Si date1 cae en lunes, DateDiff cuenta el número de lunes hasta date2. Cuenta date2 pero no date1. Si interval es Semana ("ww"), sin embargo, 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 domingo, pero no cuenta date1, aunque caiga en domingo.

Si date1 hace referencia a un momento posterior en el tiempo a date2, la DateDiff función devuelve un número negativo.

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

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

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

Nota

Para date1 y date2, si la configuración de la Calendar propiedad es gregoriana, la fecha proporcionada debe ser gregoriana. Si el calendario es Hijri, la fecha proporcionada debe ser Hijri.

Ejemplos de consulta de 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 basados en 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 en 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 semanas naturales, 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, aunque caiga en 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 DifFecha 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 cumplir los pedidos de los clientes. En la tabla Pedidos, tiene un campo llamado ReceiveBefore que contiene la fecha en la que el cliente necesita recibir el pedido. Puedes 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 de 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 antes de que se deba enviar el pedido. Si quedan menos de 10 días antes de 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ía inmediatamente.

Usar la función DifFecha 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 Fecha correcta