Fonction DateDiff

S’applique à
Access pour Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Retourne un Variant (Long) qui spécifie le nombre d’intervalles de temps entre deux dates.

Syntaxe

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

La DateDiff fonction a les arguments suivants :

Argument Description
interval Obligatoire. Expression de chaîne qui est l’intervalle de temps que vous utilisez pour calculer la différence entre date1 et date2.
date1, date2 Obligatoire. Variant (Date). Deux dates que vous souhaitez utiliser dans le calcul.
firstdayofweek Facultatif. Constante qui spécifie le premier jour de la semaine. Si vous ne le spécifiez pas, dimanche est supposé.
firstweekofyear Facultatif. Constante qui spécifie la première semaine de l’année. Si vous ne le spécifiez pas, la première semaine est la semaine au cours de laquelle le 1er janvier se produit.

Paramètres

L’argument interval a les paramètres suivants :

Paramètre Description
yyyy Année
q Trimestre
m Mois
y Jour de l’année
d Jour
w Weekday
ww Semaine
h Heure
n Minute
s Seconde

L’argument firstdayofweek a les paramètres suivants :

Constante Valeur Description
vbUseSystem 0 Utilise le paramètre d’API NLS.
vbSunday 1 Dimanche (valeur par défaut)
vbMonday 2 Lundi
vbTuesday 3 Mardi
vbWednesday 4 Mercredi
vbThursday 5 Jeudi
vbFriday 6 Vendredi
vbSaturday 7 Samedi
Constante Valeur Description
vbUseSystem 0 Utilise le paramètre d’API NLS.
vbFirstJan1 1 Commence par la semaine au cours de laquelle le 1er janvier se produit (valeur par défaut).
vbFirstFourDays 2 Commence par la première semaine qui a au moins quatre jours dans la nouvelle année.
vbFirstFullWeek 3 Commence par la première semaine complète de l’année.

Remarques

Vous pouvez utiliser la DateDiff fonction pour déterminer le nombre d’intervalles de temps spécifiés entre deux dates. Par exemple, vous pouvez utiliser DateDiff pour calculer le nombre de jours entre deux dates ou le nombre de semaines entre aujourd’hui et la fin de l’année.

Pour calculer le nombre de jours entre date1 et date2, vous pouvez utiliser Jour de l’année ("y") ou Jour ("d"). Lorsque interval a la valeur Weekday ("w"), DateDiff retourne le nombre de semaines entre les deux dates. Si date1 tombe un lundi, DateDiff compte le nombre de lundis jusqu’à date2. Il compte, date2 mais pas date1. Si interval a la valeur Semaine ("ww"), toutefois, la DateDiff fonction retourne le nombre de semaines calendaires entre les deux dates. Il compte le nombre de dimanches entre date1 et date2. DateDiff compte date2 si elle tombe un dimanche, mais elle ne compte date1pas , même si elle tombe le dimanche.

Si date1 fait référence à un point dans le temps ultérieur à date2, la DateDiff fonction retourne un nombre négatif.

L’argument firstdayofweek affecte les calculs qui utilisent les symboles d’intervalle "w" et "ww" .

Si date1 ou date2 est un littéral de date, l’année spécifiée devient une partie permanente de cette date. Toutefois, si date1 ou date2 est placé entre guillemets doubles (" ") et que vous omettez l’année, l’année en cours est insérée dans votre code chaque fois que l’expression date1 ou date2 est évaluée. Cela permet d’écrire du code que vous pouvez utiliser dans différentes années.

Lorsque vous comparez le 31 décembre au 1er janvier de l’année suivante, DateDiff la valeur Année ("yyyy") renvoie 1 même si un seul jour s’est écoulé.

Remarque

Pour date1 et date2, si le Calendar paramètre de propriété est grégorien, la date fournie doit être grégorienne. Si le calendrier est Hijri, la date fournie doit être Hijri.

Exemples de requête DateDiff

Expression Résultats
SELECT DateDiff("yyyy",#01/01/2010#,[DateofSale]) AS Expr1 FROM ProductSales; Retourne la différence, en années, entre la date 01/01/2010 et les valeurs du DateofSale champ.
SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Retourne la différence, en trimestres en fonction de l’année civile, entre la date système et DateofSale, et l’affiche dans la DaysSinceSale colonne .
SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Retourne la différence, en jours, entre la date système et DateofSale, et l’affiche dans la DaysSinceSale colonne .
SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Retourne la différence, en jours, entre la date système et DateofSale, et l’affiche dans la DaysSinceSale colonne .
SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Retourne la différence, en jours ouvrables, entre la date système et DateofSale, et l’affiche dans la DaysSinceSale colonne . Si DateofSale tombe un lundi, DateDiff compte le nombre de lundis jusqu’à la date du système. Elle compte la date du système, mais pas la DateofSale valeur.
SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Retourne la différence, en semaines calendaires, entre la date système et DateofSale, et l’affiche dans la DaysSinceSale colonne . Il compte le nombre de dimanches entre DateofSale et la date du système. Il compte la date système si elle tombe un dimanche, mais elle ne compte DateofSalepas , même si elle tombe le dimanche.
SELECT DateDiff("h",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Retourne la différence, en heures, entre la date système et DateTime, et l’affiche dans la DaysSinceSale colonne .
SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Retourne la différence, en minutes, entre la date système et DateTime, et l’affiche dans la DaysSinceSale colonne .
SELECT DateDiff("s",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Retourne la différence, en secondes, entre la date système et DateTime, et l’affiche dans la DaysSinceSale colonne .

Utiliser la fonction DateDiff dans une expression

Vous pouvez utiliser la DateDiff fonction partout où vous pouvez utiliser des expressions. Par exemple, supposons que vous ayez un formulaire que vous utilisez pour traiter les commandes des clients. Dans la table Commandes, vous avez un champ nommé ReceiveBefore qui contient la date à laquelle le client doit recevoir la commande. Vous pouvez utiliser la DateDiff fonction avec une zone de texte sur le formulaire pour afficher le nombre de jours restants avant l’expédition de la commande.

En supposant que l’expédition d’une commande prend dix jours, définissez la propriété Source de contrôle de la zone de texte comme suit :

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

Lorsque vous ouvrez le formulaire en mode Formulaire, la zone de texte affiche le nombre de jours restants avant l’expédition de la commande. S’il reste moins de 10 jours avant que le client ait besoin de recevoir la commande, le numéro dans la zone de texte est négatif. Il indique le nombre de jours de retard de la commande si vous l’expédiez immédiatement.

Utiliser la fonction DateDiff dans le code VBA

Cet exemple utilise la DateDiff fonction pour afficher le nombre de jours entre une date donnée et aujourd’hui.

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

Voir aussi

Choisir la fonction de date correcte