Fonction DateDiff

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

Renvoie une variante (longue) qui spécifie le nombre d’intervalles de temps entre deux dates.

Syntaxe

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

La DateDiff fonction contient 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. Variante (Date). Deux dates à utiliser dans le calcul.
firstdayofweek Facultatif. Constante spécifiant le premier jour de la semaine. Si vous ne le précisez pas, le 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 du 1er janvier.

Paramètres

Les interval paramètres de l’argument sont les 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

Les firstdayofweek paramètres de l’argument sont les suivants :

Constante Valeur Description
vbUseSystem 0 Utilise le paramètre d’API NLS.
vbSunday 1 Dimanche (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 du 1er janvier (par défaut).
vbFirstFourDays 2 Commence par la première semaine qui compte 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 fonction pour déterminer le DateDiff nombre d’intervalles spécifiés entre deux dates. Par exemple, vous pouvez utiliser cette fonction 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 date1date2et , vous pouvez utiliser Jour de l’année ("y") ou Jour ("d"). Quand interval est 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. Cela compte, date2 mais pas date1. Si interval est Semaine ("ww"), cependant, la DateDiff fonction renvoie le nombre de semaines civiles entre les deux dates. Il compte le nombre de dimanches entre date1 et date2. DateDiff compte date2 s’il tombe un dimanche, mais il ne compte date1pas, même s’il tombe un dimanche.

Si date1 fait référence à un point antérieur à date2, la DateDiff fonction renvoie 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 or date2 est 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 à différentes années.

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

Remarque

Pour date1 et date2, si le paramètre de Calendar 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; Renvoie la différence, en années, entre la date 01/01/2010 et les valeurs incluses dans le DateofSale champ.
SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Renvoie la différence, en trimestres sur la base 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; Renvoie 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; Renvoie 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; Renvoie la différence, en jours de la semaine, 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. Il compte la date système, mais pas la DateofSale valeur.
SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Renvoie la différence, en semaines civiles, entre la date système et DateofSale, et l’affiche dans la DaysSinceSale colonne. Il compte le nombre de dimanches entre la date 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 un dimanche.
SELECT DateDiff("h",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Renvoie 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; Renvoie 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; Renvoie la différence, en secondes, entre la date système et DateTime, et l’affiche dans la DaysSinceSale colonne.

Utiliser la fonction DiffDate dans une expression

Vous pouvez utiliser la fonction partout où vous pouvez utiliser des DateDiff expressions. Par exemple, supposons que vous disposez d’un formulaire que vous utilisez pour traiter des commandes clients. Dans la table Commandes, vous avez un champ nommé ReceiveBefore qui contient la date limite à 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 que la commande ne soit expédiée.

En supposant que l’expédition d’une commande prenne dix jours, définissez la propriété Source 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 indique le nombre de jours restants avant l’expédition de la commande. S’il reste moins de 10 jours avant que le client ne doive recevoir la commande, le nombre dans la zone de texte est négatif. Il indique le 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 la date du jour.

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