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 Msg TheDate = InputBox("Enter a date") Msg = "Days from today: " & DateDiff("d", Now, TheDate) MsgBox Msg