Fonction DATEDIFF de SQL Server

Résumé : dans ce tutoriel, vous apprendrez à utiliser la fonction DATEDIFF() de SQL Server pour calculer le nombre d’années, de mois, de semaines, de jours,etc, entre deux dates.

SQL Server DATEDIFF() overview

Pour calculer la différence entre deux dates en années, en mois, en semaines, etc., vous utilisez la fonction DATEDIFF():

DATEDIFF( date_part , start_date , end_date)
Code language: SQL (Structured Query Language) (sql)

La fonction DATEDIFF() accepte trois arguments : date_partstart_date, et end_date.

  • date_part est la partie de la date, par ex, une année, un trimestre, un mois, une semaine que vous voulez comparer entre le start_date et end_date. Voir les parties de date valides dans le tableau ci-dessous.
  • start_date et end_date sont les dates à comparer. Elles doivent être résolues en valeurs de type DATEDATETIMEDATETIMEOFFSETDATETIME2SMALLATETIME, ou TIME.

Le tableau suivant énumère les valeurs valides de date_part :

.

jj, d

.

date_part abréviations
year yy, yyyy
trimestre qq, q
mois mm, m
jour de l’année dy, y
jour
semaine semaine, ww
heure hh minute mi, n
seconde ss, s
milliseconde ms
microseconde mcs
nanoseconde ns

La fonction DATEDIFF() renvoie une valeur de nombre entier indiquant la différence entre la start_date et la end_date, avec l’unité spécifiée par date_part.

La fonction DATEDIFF() renvoie une erreur si le résultat est hors de la plage pour l’entier (-2 147 483 648 à +2 147 483 647). Dans ce cas, vous devez utiliser la fonction DATEDIFF_BIG() à la place.

Exemples de la fonction DATEDIFF() de SQL Server

Prenons quelques exemples d’utilisation de la fonction DATEDIFF() pour mieux la comprendre.

A) Utilisation de la fonction DATEDIFF() pour comparer les différences entre deux valeurs de date

Cet exemple utilise la fonction DATEDIFF() pour comparer la différence entre deux dates dans diverses parties de date :

DECLARE @start_dt DATETIME2= '2019-12-31 23:59:59.9999999', @end_dt DATETIME2= '2020-01-01 00:00:00.0000000';SELECT DATEDIFF(year, @start_dt, @end_dt) diff_in_year, DATEDIFF(quarter, @start_dt, @end_dt) diff_in_quarter, DATEDIFF(month, @start_dt, @end_dt) diff_in_month, DATEDIFF(dayofyear, @start_dt, @end_dt) diff_in_dayofyear, DATEDIFF(day, @start_dt, @end_dt) diff_in_day, DATEDIFF(week, @start_dt, @end_dt) diff_in_week, DATEDIFF(hour, @start_dt, @end_dt) diff_in_hour, DATEDIFF(minute, @start_dt, @end_dt) diff_in_minute, DATEDIFF(second, @start_dt, @end_dt) diff_in_second, DATEDIFF(millisecond, @start_dt, @end_dt) diff_in_millisecond;
Code language: SQL (Structured Query Language) (sql)

Voici la sortie :

SQL Server Fonction DATEDIFF avec variables exemple

B) Utilisation de la fonction DATEDIFF() avec tableau exemple de colonne

L’exemple suivant utilise la fonction DATEDIFF() pour comparer la date de livraison demandée avec la date d’expédition en jours et retourner si la commande est à-.temps ou en retard :

SELECT order_id, required_date, shipped_date, CASE WHEN DATEDIFF(day, required_date, shipped_date) < 0 THEN 'Late' ELSE 'OnTime' END shipmentFROM sales.ordersWHERE shipped_date IS NOT NULLORDER BY required_date;
Code language: SQL (Structured Query Language) (sql)

Voici la sortie :

Exemple de fonction DATEDIFF de SQL Server

Dans ce tutoriel, vous avez appris à utiliser la fonction DATEDIFF() de SQL Server pour calculer la différence entre deux valeurs de date.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *