DATEDIFF (Expression SSIS)

Renvoie le nombre de limites de date et d'heure traversées entre deux dates données. Le paramètre datepart identifie quelles limites de date et d'heure il faut comparer.

Syntaxe

DATEDIFF(datepart, startdate, endate)

Arguments

  • datepart
    Paramètre qui indique la partie de la date à comparer et pour laquelle une valeur doit être retournée.

  • startdate
    Date de début de l'intervalle.

  • endate
    Date de fin de l'intervalle.

Types des résultats

DT_I4

Notes

Le tableau suivant décrit les parties de date et les abréviations reconnues par l'évaluateur d'expression.

Partie de date

Abréviations

Année

yy, yyyy

Trimestre

qq, q

Mois

mm, m

Jour de l'année

dy, y

Jour

dd, d

Semaine

wk, ww

Jour de la semaine

dw, w

Heure

Hh

Minute

mi, n

Seconde

ss, s

Milliseconde

Ms

La fonction DATEDIFF renvoie un résultat NULL si un argument est NULL.

Un littéral de date doit être explicitement converti dans l'un des types de données date. Pour plus d'informations, consultez Types de données d'Integration Services.

Notes

La validation de l'expression échoue lorsqu'un littéral de date est explicitement converti en un des types de données de date suivants : DT_DBTIMESTAMPOFFSET, DT_DBTIMESTAMP2, et DT_DBTIME2.

Une erreur se produit dans les cas suivants : une date n'est pas valide, l'unité de date ou d'heure n'est pas une chaîne, la date de début n'est pas une date ou la date de fin n'est pas une date.

Si la date de fin est antérieure à la date de début, la fonction renvoie un nombre négatif. Si les dates de début et de fin sont identiques ou qu'elles appartiennent au même intervalle, la fonction renvoie zéro.

Exemples

L'exemple suivant calcule le nombre de jours entre deux littéraux de date. Si le format de la date est « mm/jj/aaaa », la fonction renvoie 7.

DATEDIFF("dd", (DT_DBTIMESTAMP)"8/1/2003", (DT_DBTIMESTAMP)"8/8/2003")

L'exemple suivant renvoie le nombre de mois entre un littéral de date et la date actuelle.

DATEDIFF("mm", (DT_DBTIMESTAMP)"8/1/2003",GETDATE())

L'exemple suivant renvoie le nombre de semaines entre la date de la colonne ModifiedDate et la variable YearEndDate. Si la variable YearEndDate est du type de données date, aucune conversion explicite n'est requise.

DATEDIFF("Week", ModifiedDate,@YearEndDate)