DateDiff (función)

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 los siguientes argumentos:

Sugerencia: En Access 2010, el generador de expresiones tiene IntelliSense, para que pueda ver qué argumentos requiere la expresión. 

argumento

Descripción

intervalo

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

fecha1, fecha2

Obligatorio. Tipo Variant (Fecha). Dos fechas que se desea utilizar en el cálculo.

primer_día_semana

Opcional. Un 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. Una 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 la siguiente 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 FirstDayOfWeek tiene los siguientes valores:

Constante

Valor

Descripción

vbUseSystem

0

Usa la configuración de la API NLS.

vbSunday

1

Domingo (valor 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 tenga al menos cuatro días en el nuevo año.

vbFirstFullWeek

3

Comienza con la primera semana completa del año.

Observaciones

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 el día del año ("y") o el día ("d"). Cuando intervalo es día de la semana ("w"), DateDiff devuelve el número de semanas entre las dos fechas. Si fecha1 cae un lunes, DateDiff cuenta el número de lunes hasta fecha2. Cuenta fecha2 , pero no fecha1. Si Interval es Week ("WW"), no obstante, la función DateDiff devuelve el número de semanas de calendario entre las dos fechas. Cuenta el número de domingos entre fecha1 y fecha2. DateDiff cuenta fecha2 si cae en domingo; pero no cuenta fecha1, incluso si se cae en domingo.

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

El argumento FirstDayOfWeek afecta a los cálculos que usan los símbolos de intervalo "w" y "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 está entre comillas dobles ("") y se omite el año, el año actual se inserta en el código cada vez que se evalúa la expresión fecha1 o fecha2 . Esto permite escribir código que se puede usar en años diferentes.

Al comparar el 31 de diciembre con el 1 de enero del año inmediatamente anterior, DateDiff para año ("yyyy") devuelve 1, aunque solo haya transcurrido un día.

Nota:  En el caso de fecha1 y fecha2, si el valor de la propiedad Calendar es gregoriano, la fecha proporcionada debe ser Gregoriana. Si el calendario es Hijri, la fecha proporcionada debe ser Hijri.

Ejemplos de consultas DateDiff

Expresión

Resultados

Seleccione DateDiff ("AAAA", #01/01/2010 #, [DateofSale]) como expr1 FROM ProductSales;

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

Seleccione DateDiff ("q", [DateofSale], fecha ()) como DaysSinceSale de ProductSales;

Devuelve la diferencia entre la fecha del sistema y "DateofSale" como número de ' trimestres ' (según el año civil) 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".

Seleccione DateDiff ("y", [DateofSale], fecha ()) como DaysSinceSale de ProductSales;

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

Seleccione DateDiff ("d", [DateofSale], fecha ()) como DaysSinceSale de ProductSales;

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

Seleccione DateDiff ("w", [DateofSale], fecha ()) como DaysSinceSale de ProductSales;

Devuelve la diferencia entre la fecha del sistema y "DateofSale" como número de ' días de la semana ' y se muestra en la columna "DaysSinceSale". 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 valor de "DateofSale".

Seleccione DateDiff ("WW", [DateofSale], Date ()) AS DaysSinceSale FROM ProductSales;

Devuelve la diferencia entre la fecha del sistema y "DateofSale" como número de "semanas de 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", aunque se encuentre en domingo.

Seleccione DateDiff ("h", [DateTime], Date ()) como DaysSinceSale de ProductSales;

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

Seleccione DateDiff ("n", [fechaHora], fecha ()) como DaysSinceSale de ProductSales;

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

Seleccione DateDiff ("s", [fecha y hora], fecha ()) como DaysSinceSale de 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 completar los pedidos de los clientes. En la tabla pedidos, tiene un campo denominado ReceiveBefore que contiene la fecha en la que el cliente necesita 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 deba enviarse el pedido.

Suponiendo que se tarda diez días en enviarse un pedido, establezca la propiedad origen del control del cuadro de texto de la siguiente manera:

= DateDiff ("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 antes de que deba enviarse el pedido. Si quedan menos de 10 días antes de que el cliente necesite recibir el pedido, el número en el cuadro de texto es negativo e indica cuántos días retrasará el pedido si se envía inmediatamente.

Ejemplo de VBA

Usar la función DateDiff en código VBA    

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

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

Nota:  Esta página se ha traducido mediante un sistema automático y es posible que contenga imprecisiones o errores gramaticales. Nuestro objetivo es que este contenido le resulte útil. ¿Podría decirnos si la información le resultó útil? Aquí puede consultar el artículo en inglés.

Vea también

Elegir la función de fecha correcta

Ampliar sus conocimientos de Office
Explorar los cursos
Obtener nuevas características primero
Únase a los participantes de Office Insider

¿Le ha sido útil esta información?

¡Gracias por sus comentarios!

Gracias por sus comentarios. Quizá le interese ponerse en contacto con uno de nuestros agentes de soporte de Office.

×