Exemple 3 : Trouvez la différence entre deux colonnes de dates
Considérez le tableau sales.orders, qui contient les colonnes suivantes :
order_date(au moment de la commande)shipped_date(lorsque la commande est expédiée)
Pour suivre le délai d'expédition, nous pouvons utiliser la fonction DATEDIFF().
SELECT
order_id,
order_date,
shipped_date,
DATEDIFF(day, order_date, shipped_date) order_to_ship_days
FROM sales.orders
|
|
|
|
|
|
1 |
2016-01-01T00:00:00.000Z |
2016-01-03T00:00:00.000Z |
2 |
|
2 |
2016-01-01T00:00:00.000Z |
2016-01-03T00:00:00.000Z |
2 |
|
3 |
2016-01-02T00:00:00.000Z |
2016-01-03T00:00:00.000Z |
1 |
Exemple 4. Trouvez l'intervalle entre la date du jour et une colonne.
En utilisant le tableau sales.orders comme dans l'exemple 3, nous pouvons utiliser DATEDIFF() pour trouver l'intervalle entre la date du jour et la date à laquelle une commande est passée.
SELECT
order_id,
order_date,
GETDATE() AS todays_date,
DATEDIFF(day, order_date, GETDATE()) AS order_to_today -- interval between order_date with today's date
FROM sales.orders
|
|
|
|
|
|
1 |
2016-01-01T00:00:00.000Z |
2022-10-09T02:47:00.403Z |
2473 |
|
2 |
2016-01-01T00:00:00.000Z |
2022-10-09T02:47:00.403Z |
2473 |
|
3 |
2016-01-02T00:00:00.000Z |
2022-10-09T02:47:00.403Z |
2472 |
Notes complémentaires
La fonction DATEDIFF() renvoie une erreur si le résultat est hors plage (c'est-à-dire si la valeur est supérieure à +2 147 483 647 ou inférieure à -2 147 483 647). Dans ce cas, la fonction DATEDIFF_BIG() est appropriée.
Exigences techniques
Fonctionne avec SQL Server (à partir de 2008), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse

Qu'est-ce que la
DATEDIFF()fonction ?La fonction
DATEDIFF()renvoie l'intervalle entre deux horodatages ou valeurs de date dans une unité spécifiée.DATEDIFF()syntaxParamètres
Qu'est-ce que c'est ?
datepartUn paramètre obligatoire. Il s'agit de l'unité dans laquelle
DATEDIFF()rapporte la différence entrestartdateetenddate. Voir la section suivante pour les différents types de valeurs qu'il peut contenir.startdateUne valeur requise signifiant une valeur temporelle qui indique la date de début.
enddateUne valeur requise signifiant une valeur temporelle qui indique la date de fin.
datepartsyntaxLe paramètre
datepartpeut prendre de nombreuses valeurs, dont les suivantesyear,y,yy, ouyyyyquarter,qq,qmonth,mm,mdayofyear,day,dd,dweek,wk,wwhour,hhminute,mi,nsecond,ss,smillisecond,msmicrosecond,mcsnanosecond,nsNotez que
datepartne doit pas être placé entre guillemets. Par exemple, la syntaxe suivante est correcte :La réponse suivante est incorrecte.
DATEDIFF()exemplesLorsque vous travaillez avec
DATEDIFF(), les résultats peuvent être positifs ou négatifs. Sienddateest postérieur àstartdate,DATEDIFF()renvoie une valeur positive. Sienddateest antérieur àstartdate,DATEDIFF()renvoie une valeur négative.Exemple 1 : Trouver la différence entre deux dates
Demande de renseignements
Sortie
SELECT DATEDIFF(year, ‘2022-12-31', ‘2024-06-01')1
SELECT DATEDIFF(quarter, ‘2022-12-31', ‘2024-06-01')2
SELECT DATEDIFF(month, ‘2022-12-31', ‘2024-06-01')6
SELECT DATEDIFF(day, ‘2022-12-31', ‘2024-06-01')153
SELECT DATEDIFF(week, ‘2022-12-31', ‘2024-06-01')21
Exemple 2 : Trouver la différence entre deux horodatages
Demande de renseignements
Sortie
SELECT DATEDIFF(hour,'2023-12-31 00:00:00','2023-12-31 00:59:59')0
SELECT DATEDIFF(minute,'2023-12-31 00:00:00','2023-12-31 00:59:59')59
SELECT DATEDIFF(second,'2023-12-31 00:00:00','2023-12-31 00:59:59')3599
SELECT DATEDIFF(millisecond,'2023-12-31 00:00:00','2023-12-31 00:59:59')3599000