Renvoie une donnée de type Variante (Long) indiquant le nombre d’intervalles de temps entre les deux dates spécifiées.

Syntaxe

DateDiff ( intervalle, date1, date2 [, premierjoursjours semaine] [ , premièressan] )

La syntaxe de la fonction DateDiff présente les arguments suivantes :

Conseil :  Dans Access 2010, le Générateur d’IntelliSense vous permet de voir les arguments dont votre expression a besoin. 

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. Un constante spécifié le premier jour de la semaine. Dimanche est le jour par défaut.

premièresem

Facultatif. Constante spécifiée 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 ces paramètres :

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 premierjours semaine insérait les paramètres ci-après :

Constante

Valeur

Description

vbUseSystem

0

Utilisez le paramètre de l’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

Utilisez le paramètre de l’API NLS.

vbFirstJan1

1

Commencez par la semaine où intervient le 1er janvier (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 la date1 et la date2,vous pouvez utiliser jour de l’année (« a ») ou jour (« j »). Lorsque l’intervalle est Jours de la semaine (« j »), DateDiff renvoie le nombre de semaines entre les deux dates. Si la date1 tombe un lundi, DateDiff compte le nombre de lundis jusqu’à la date2. Il compte la date2, mais pas la date1. Si l’intervalle est Semaine (« ss »), toutefois, la fonction DateDiff renvoie le nombre de semaines du calendrier entre les deux dates. Il compte le nombre de dimanches entre la date1 et la date2.DateDiff comptela date2 si elle tombe un dimanche ; mais ne compte pas la date1,même si elle tombe un dimanche.

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

L’argument premierjours semaine affecte les calculs qui utilisent les symboles d’intervalle « w » et « ww ».

Si date1 ou date2 est une date 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 entourée de 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é au cours de différentes années.

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

Remarque :  Pour date1 etdate2,si la définition de propriété Calendrier est grégorien, la date fournie doit être grégorien. Si le calendrier est islamique (Hijri), la date fournie doit être le calendrier islamique (Hijri).

Exemples de requête DateDiff

Expression

Résultats

SELECT DateDiff(« yyyy »,#01/01/2010#,[DateofSale]) AS Expr1 FROM ProductSales;

Renvoie la différence entre Date2 et Date1 (considère Date1 comme la plus ancienne et Date2 comme plus récent) comme nombre d'« années ». Résultat : Différence entre les valeurs du champ « DateofSale » et la date « 01/01/2010 » sous la valeur « Années ».

SELECT DateDiff(« t »,[DateofSale],Date()) AS DaysSinceSale FROM ProductSales;

Renvoie la différence entre la date système et « DateofSale » comme nombre de « Trimestres » (selon l’année calentaire) et affiche dans la colonne « JoursSinceSale ». renvoie la différence entre la date système et « DateofSale » comme nombre de « Mois » et affiche dans la colonne « JoursSinceSale ».

SELECT DateDiff(« y »,[DateofSale],Date()) AS DaysSinceSale FROM ProductSales;

Renvoie la différence entre la date système et « DateofSale » comme nombre de « jours » et affiche dans la colonne « JoursSinceSale ».

SELECT DateDiff(« j »,[DateofSale],Date()) AS DaysSinceSale FROM ProductSales;

Renvoie la différence entre la date système et « DateofSale » comme nombre de « jours » et affiche dans la colonne « JoursSinceSale ».

SELECT DateDiff(« w »,[DateofSale],Date()) AS DaysSinceSale FROM ProductSales;

Renvoie la différence entre la date système et « DateofSale » comme nombre de « Jours de semaine » et affiche dans la colonne « JoursSinceSale ». 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 valeur de « DateofSale ».

SELECT DateDiff(« ww »,[DateofSale],Date()) AS DaysSinceSale FROM ProductSales;

Renvoie la différence entre la date système et « DateofSale » comme numéro de « Calendrier Semaines » et affiche dans la colonne « JoursSinceSale ». Il compte le nombre de dimanches entre « DateofSale » et « date système ». Elle comptera la date système si elle tombe un dimanche. mais ne compte pas « DateofSale », même si la date tombe un dimanche.

SELECT DateDiff(« h »,[DateTime],Date()) AS DaysSinceSale FROM ProductSales;

Renvoie la différence entre la date système et « DateTime » en tant que nombre d'« heures » et affiche dans la colonne « DaysSinceSale ».

SELECT DateDiff(« n »,[DateTime],Date()) AS DaysSinceSale FROM ProductSales;

Renvoie la différence entre la date système et « DateTime » en tant que nombre de « Minutes » et affiche dans la colonne « DaysSinceSale ».

SELECT DateDiff(« s »,[DateTime],Date()) AS DaysSinceSale FROM ProductSales;

Renvoie la différence entre la date système et « DateTime » en tant que nombre de « secondes » et affiche dans la colonne « DaysSinceSale ».

Exemple d'expression

Utiliser la fonction DateDiff dans une expression     Vous pouvez utiliser la fonction DateDiff là où vous pouvez utiliser des expressions. Par exemple, supposons que vous avez un formulaire que vous utilisez pour répondre aux 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 qui restent 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 contrôle de la zone de texte comme suit :

=DateDiff(« j », Maintenant(), [Commandes].[ ReceiveBefore])-10

Lorsque vous ouvrez le formulaire en mode Formulaire, la zone de texte affiche le nombre de jours avant l’expédition de la commande. S’il reste moins de 10 jours avant que le client ne reçoit la commande, le nombre 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 de VBA

Utiliser la fonction DateDiff dans un code VBA    

Cet exemple utilise la fonction DateDiff 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

Choisir la fonction de date correcte

Besoin d’aide ?

Développez vos compétences
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoindre Microsoft Office insiders

Ces informations vous ont-elles été utiles ?

Dans quelle mesure êtes-vous satisfait(e) de la qualité de la langue ?
Qu’est-ce qui a affecté votre expérience ?

Nous vous remercions de vos commentaires.

×