Partager via


DATEDIFF (Transact-SQL)

Renvoie le nombre de limites de date et d'heure traversées entre deux dates spécifiées.

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

DATEDIFF ( datepart , startdate , enddate )

Arguments

  • datepart
    Paramètre qui spécifie l'élément de la date sur lequel calculer la différence. Le tableau suivant répertorie les parties de date et les abréviations reconnues par SQL Server 2005. Ces parties de date et ces abréviations ne peuvent pas être fournies sous forme de variable déclarée par l'utilisateur.

    Datepart Abréviation(s)

    year

    yy, yyyy

    quarter

    qq, q

    month

    mm, m

    dayofyear

    dy, y

    day

    dd, d

    week

    wk, ww

    Hour

    hh

    minute

    mi, n

    second

    ss, s

    millisecond

    ms

  • startdate -
    Date de début pour le calcul. startdate est une expression qui renvoie une valeur de type datetime ou smalldatetime, ou une chaîne de caractères dans un format de date.

    La précision de smalldatetime étant limitée à la minute, en cas d'utilisation d'une valeur smalldatetime, les secondes et les millisecondes sont toujours égales à 0.

    Si vous spécifiez uniquement les deux derniers chiffres de l'année, les valeurs inférieures ou égales aux deux derniers chiffres de la valeur de l'option de configuration two-digit year cutoff appartiennent au même siècle que l'année de coupure. Les valeurs supérieures aux deux derniers chiffres de la valeur de cette option appartiennent au siècle qui précède l'année de coupure. Par exemple, si l'option two-digit year cutoff est égale à 2049 (valeur par défaut), 49 est interprété comme 2049 et 50 est interprété comme 1950. Pour éviter toute ambiguïté, écrivez les années sur quatre chiffres.

    Pour plus d'informations sur la manière de spécifier les valeurs de temps, consultez Formats d'heure. Pour plus d'informations sur la manière de spécifier les dates, consultez Date et Time (Transact-SQL).

  • enddate
    Date de fin pour le calcul. enddate est une expression qui renvoie une valeur de type datetime ou smalldatetime, ou une chaîne de caractères dans un format de date.

Notes

startdate est soustrait de enddate. Si la valeur de startdate est postérieure à enddate, une valeur négative est renvoyée.

DATEDIFF renvoie une erreur si le résultat dépasse les limites valides pour les valeurs entières. Pour les millisecondes, le nombre maximal est égal à 24 jours, 20 heures, 31 minutes et 23 647 secondes. Pour les secondes, le nombre maximal est 68 années.

La méthode utilisée pour compter les limites traversées, telles que les minutes, les secondes et les millisecondes, assure la cohérence du résultat de DATEDIFF pour tous les types de données. Le résultat est une valeur entière signée, égale au nombre de limites d'éléments datepart traversés entre la première et la seconde date. Par exemple, le nombre de semaines entre le dimanche 4 janvier et le dimanche 11 janvier est égal à 1.

Types des valeurs renvoyées

integer

Exemple

L'exemple suivant détermine la différence en jours entre la date actuelle et la date de commande de produits de la base de données AdventureWorks.

USE AdventureWorks;
GO
SELECT DATEDIFF(day, OrderDate, GETDATE()) AS NumberOfDays
FROM Sales.SalesOrderHeader;
GO

Voir aussi

Référence

CAST et CONVERT (Transact-SQL)
Types de données (Transact-SQL)
Fonctions de date et d'heure (Transact-SQL)

Autres ressources

Format ISO 8601
Format de date alphabétique
Format de date numérique
Format de date et d'heure ODBC
Formats d'heure
Format de chaîne non séparée

Aide et Informations

Assistance sur SQL Server 2005