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

Sintaxis

DateDiff ( intervalo, fecha1, fecha2 [, primer_día_semana] [, primera_semana_año] )

La sintaxis de la función DateDiff tiene estos argumentos:

Argumento

Descripción

intervalo

Requerido. Expresión de cadena que es el intervalo de tiempo que se usa para calcular la diferencia entre fecha1 y fecha2.

fecha1, fecha2

Requerido. Variant (Date). Dos fechas que se desea utilizar en el cálculo.

primer_día_semana

Opcional. Una constante que especifica el primer día de la semana. Si no se especifica ningún valor, se supone que es el domingo.

primera_semana_año

Opcional. Constante que especifica la primera semana del año. Si no se especifica, se entiende que la primera semana es aquella que contiene el día 1 de enero.

Configuración

El intervaloargumento 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 argumento primer_día_semana tiene esta configuración:

Constante

Valor

Descripción

vbUseSystem

0

Use 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

Use la configuración de la API NLS.

vbFirstJan1

1

Comience con la semana en la que se produce el 1 de enero (predeterminado).

vbFirstFourDays

2

Comience con la primera semana que tenga al menos cuatro días en el año nuevo.

vbFirstFullWeek

3

Comience con la primera semana completa del año.

Comentarios

Puede usar la función DateDiff 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 fecha1 y fecha2, puede usar Día del año ("y") o Día ("d"). Cuando el intervalo es Weekday ("w"), DateDiff devuelve el número de semanas entre las dos fechas. Si fecha1 cae en un lunes, DateDiff cuenta el número de lunes hasta fecha2. Cuenta fecha2 , pero no fecha1. Sin embargo, si el intervalo es Semana ("ww"), la función IffFecha devuelve el número de semanas del calendario entre las dos fechas. Cuenta el número de domingos entre fecha1 y fecha2. DateDiff cuenta fecha2 si cae en un domingo; pero no cuenta fecha1, incluso si cae en domingo.

Si fecha1 hace referencia a un punto posterior en el tiempo que fecha2, la función DateDiff devuelve un número negativo.

El argumento primer_día_semana afecta a los cálculos que usan los símbolos de intervalo "w" e "ww".

Si fecha1 o fecha2 es una literal de fecha, el año especificado se convierte en una parte permanente de esa fecha. Sin embargo, si fecha1 o fecha2 se incluye 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 expresión date1 o date2 . Esto permite escribir código que se puede usar en diferentes años.

Al comparar del 31 de diciembre al 1 de enero del año que tiene éxito inmediato, DateDiff para el año ("yyyy") devuelve 1, aunque solo haya transcurrido un día.

Nota:  Para fecha1 y fecha2, si el valor de la propiedad Calendario es gregoriano, la fecha proporcionada debe ser gregoriana. Si el calendario es Hijri, la fecha suministrada debe ser Hijri.

Ejemplos de consulta DateDiff

Expression

Resultados

SELECT DateDiff("aaaa",#01/01/2010#,[DateofSale]) AS Expr1 FROM ProductSales;

Devuelve la diferencia entre Fecha2 y Fecha1 (considere Fecha1 como más antigua y Fecha2 como más reciente) como número de 'Años'. Resultado: Diferencia entre los valores del campo "FechaDeVentas" y la fecha "01/01/2010" como número de 'Años'.

SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales;

Devuelve la diferencia entre la fecha del sistema y "DateofSale" como número de 'Trimestres' (según el año calendario) y se muestra en la columna "DaysSinceSale". devuelve la diferencia entre la fecha del sistema y "DateofSale" como número de "Meses" y se muestra en la columna "DaysSinceSale".

SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales;

Devuelve la diferencia entre la fecha del sistema y "DateofSale" como número de "Días" y se muestra en la columna "DaysSinceSale".

SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales;

Devuelve la diferencia entre la fecha del sistema y "DateofSale" como número de "Días" y se muestra en la columna "DaysSinceSale".

SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales;

Devuelve la diferencia entre la fecha del sistema y "DateofSale" como número de "Días laborables" y se muestra en la columna "DaysSinceSale". Si "DateofSale" cae en un lunes, DateDiff cuenta el número de lunes hasta la fecha del sistema. Cuenta la fecha del sistema, pero no el valor de "DateofSale".

SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales;

Devuelve la diferencia entre la fecha del sistema y "DateofSale" como número de "Semanas del calendario" y se muestra en la columna "DaysSinceSale". Cuenta el número de domingos entre "DateofSale" y "system date". Contará la fecha del sistema si cae en domingo; pero no cuenta "DateofSale", incluso si cae un domingo.

SELECT DateDiff("h",[DateTime],Date()) AS DaysSinceSale FROM ProductSales;

Devuelve la diferencia entre la fecha del sistema y "DateTime" como número de "Horas" y se muestra en la columna "DaysSinceSale".

SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales;

Devuelve la diferencia entre la fecha del sistema y "DateTime" como número de "Minutos" y se muestra en la columna "DaysSinceSale".

SELECT DateDiff("s",[DateTime],Date()) AS DaysSinceSale FROM ProductSales;

Devuelve la diferencia entre la fecha del sistema y "DateTime" como número de "segundos" y se muestra en la columna "DaysSinceSale".

Ejemplo de expresión

Usar la función DateDiff en una expresión     Puede usar la función DateDiff siempre que 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 función DateDiff 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:

=Fecha("d", Ahora(), [Pedidos].[ 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 e indica cuántos días de retraso tendrá el pedido si se envía inmediatamente.

Ejemplo VBA:

Usar la función DateDiff en código VBA    

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

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

Vea también

Elegir la función de fecha correcta

¿Necesita más ayuda?

¿Quiere más opciones?

Explore las ventajas de las suscripciones, examine los cursos de aprendizaje, aprenda a proteger su dispositivo y mucho más.

Las comunidades le ayudan a formular y responder preguntas, enviar comentarios y leer a expertos con conocimientos extensos.