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