Renvoie une donnée de type Variante (Long) indiquant le nombre d’intervalles de temps entre les deux dates spécifiées.
Syntaxe
DateDiff ( interval, date1, date2 [, firstdayofweek] [, firstweekofyear] )
La syntaxe de la fonction DateDiff contient les arguments suivants :
Argument |
Description |
---|---|
intervalle |
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 voulez utiliser pour le calcul. |
premierjoursem |
Facultatif. constante qui spécifie le premier jour de la semaine. Dimanche est le jour par défaut. |
premièresem |
Facultatif. Constante qui spécifie la première semaine de l’année. Si celle-ci n’est pas spécifiée, la semaine où intervient le 1er janvier sera utilisée par défaut. |
Paramètres
L’intervalle argument a les paramètres suivants :
Paramètre |
Description |
---|---|
aaaa |
Année |
q |
Trimestre |
m |
Mois |
a |
Jour de l’année |
j |
Jour |
w |
Weekday |
ss |
Semaine |
h |
Heure |
n |
Minute |
s |
Seconde |
L’argument firstdayofweek contient les paramètres suivants :
Constante |
Valeur |
Description |
---|---|---|
vbUseSystem |
0 |
Utilisez 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 |
Utilisez le paramètre d’API NLS. |
vbFirstJan1 |
1 |
Commencez par la semaine au cours de laquelle le 1er janvier se produit (valeur par défaut). |
vbFirstFourDays |
2 |
Commencez par la première semaine qui a au moins quatre jours dans la nouvelle année. |
vbFirstFullWeek |
3 |
Commencez par la première semaine complète de l’année. |
Remarques
Vous pouvez utiliser la fonction DateDiff 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 renvoie 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. Toutefois, si interval a la valeur Week (« ww »), la fonction DateDiff renvoie 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 il ne compte pas date1, même s’il tombe un dimanche.
Si date1 fait référence à un point dans le temps ultérieur à date2, la fonction DateDiff 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 une symbole littéral représentant une 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 qui peut être utilisé dans différentes années.
Lorsque vous comparez le 31 décembre au 1er janvier de l’année qui suit immédiatement, DateDiff pour Year (« aaaa ») renvoie 1, même si un seul jour s’est écoulé.
Remarque : Pour date1 et date2, si la propriété Calendrier est définie sur 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(« yyyyy »,#01/01/2010#,[DateofSale]) AS Expr1 FROM ProductSales ; |
Renvoie la différence entre Date2 et Date1 (considérez Date1 comme la plus ancienne et Date2 comme la plus récente) comme nombre d’années. Résultat : Différence entre les valeurs du champ « DateofSale » et la date « 01/01/2010 » comme nombre d’années. |
SELECT DateDiff(« q »,[DateofSale],Date()) AS DaysSinceSale FROM ProductSales ; |
Retourne la différence entre la date système et « DateofSale » en tant que nombre de « Trimestres » (basé sur l’année calendaires) et s’affiche dans la colonne « DaysSinceSale ». retourne la différence entre la date système et « DateofSale » comme nombre de « Months » et s’affiche dans la colonne « DaysSinceSale ». |
SELECT DateDiff(« y »,[DateofSale],Date()) AS DaysSinceSale FROM ProductSales ; |
Retourne la différence entre la date système et « DateofSale » en tant que nombre de « Jours » et s’affiche dans la colonne « DaysSinceSale ». |
SELECT DateDiff(« d »,[DateofSale],Date()) AS DaysSinceSale FROM ProductSales ; |
Retourne la différence entre la date système et « DateofSale » en tant que nombre de « Jours » et s’affiche dans la colonne « DaysSinceSale ». |
SELECT DateDiff(« w »,[DateofSale],Date()) AS DaysSinceSale FROM ProductSales ; |
Retourne la différence entre la date système et « DateofSale » comme nombre de « Weekdays » et s’affiche dans la colonne « DaysSinceSale ». Si « DateofSale » tombe un lundi, DateDiff compte le nombre de lundis jusqu’à la date système. Il compte la date système, mais pas la valeur dans « DateofSale ». |
SELECT DateDiff(« ww »,[DateofSale],Date()) AS DaysSinceSale FROM ProductSales ; |
Retourne la différence entre la date système et « DateofSale » en tant que nombre de « Semaines calender » et s’affiche dans la colonne « DaysSinceSale ». Il compte le nombre de dimanches entre « DateofSale » et « date système ». Il comptera la date du système si elle tombe un dimanche ; mais il ne compte pas « DateofSale », même s’il tombe un dimanche. |
SELECT DateDiff(« h »,[DateTime],Date()) AS DaysSinceSale FROM ProductSales ; |
Retourne la différence entre la date système et « DateTime » comme nombre d’heures et s’affiche dans la colonne « DaysSinceSale ». |
SELECT DateDiff(« n »,[DateTime],Date()) AS DaysSinceSale FROM ProductSales ; |
Retourne la différence entre la date système et « DateTime » comme nombre de « Minutes » et s’affiche dans la colonne « DaysSinceSale ». |
SELECT DateDiff(« s »,[DateTime],Date()) AS DaysSinceSale FROM ProductSales ; |
Retourne la différence entre la date système et « DateTime » comme nombre de « secondes » et s’affiche dans la colonne « DaysSinceSale ». |
Exemple d’expression
Utiliser la fonction DateDiff dans une expression Vous pouvez utiliser la fonction DateDiff 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 fonction DateDiff 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, vous 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 restant 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 et indique le nombre de jours de retard de la commande si elle est expédiée immédiatement.
Exemple VBA
Utiliser la fonction DateDiff dans le code VBA
Cet exemple utilise la fonction DateDiff 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