Le MySQL TIMESTAMPDIFF()
La fonction est utilisée pour trouver la différence entre deux expressions date ou datetime. Vous devez transmettre les deux valeurs date/dateheure, ainsi que l'unité à utiliser pour déterminer la différence (par exemple, jour , mois , etc). Le TIMESTAMPDIFF()
la fonction renverra alors la différence dans l'unité spécifiée.
Syntaxe
Tout d'abord, voici comment fonctionne la syntaxe :
TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
Ici, unit
est l'unité à utiliser pour exprimer la différence (par exemple, jour, mois, année, etc.). datetime_expr1
est la première valeur date/datetime, et datetime_expr2
est le deuxième.
Cette fonction soustrait datetime_expr1
de datetime_expr2
et renvoie le résultat en unit
s. Le résultat est renvoyé sous la forme d'un entier.
Unités valides
L'unit
l'argument peut être l'un des suivants :
MICROSECOND
-
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
Exemple 1 - Différence en jours
Voici un exemple pour démontrer l'utilisation de base de cette fonction. Ici, nous comparons deux expressions de date et renvoyons la différence entre elles en jours.
SELECT TIMESTAMPDIFF(DAY,'2022-02-01','2022-02-21') AS 'Difference in Days';
Résultat :
+--------------------+ | Difference in Days | +--------------------+ | 20 | +--------------------+
Exemple 2 - Différence d'heures
Dans cet exemple, nous comparons les mêmes valeurs que dans l'exemple précédent, sauf qu'ici, nous renvoyons la différence en heures .
SELECT TIMESTAMPDIFF(HOUR,'2022-02-01','2022-02-21') AS 'Difference in Hours';
Résultat :
+---------------------+ | Difference in Hours | +---------------------+ | 480 | +---------------------+
Exemple 3 - Un exemple "datetime"
Voici un exemple qui renvoie la différence en minutes. Dans ce cas, nous comparons deux valeurs datetime (par opposition aux seules valeurs date comme dans les exemples précédents).
SELECT TIMESTAMPDIFF(MINUTE,'2022-02-01 10:30:27','2022-02-01 10:45:27') AS 'Difference in Minutes';
Résultat :
+-----------------------+ | Difference in Minutes | +-----------------------+ | 15 | +-----------------------+
Exemple 4 – Fraction de seconde
Vous pouvez aller jusqu'à la microseconde (6 chiffres) si nécessaire.
SELECT TIMESTAMPDIFF(MICROSECOND,'2022-02-01 10:30:27.000000','2022-02-01 10:30:27.123456') AS 'Difference in Microseconds';
Résultat :
+----------------------------+ | Difference in Microseconds | +----------------------------+ | 123456 | +----------------------------+
Exemple 5 - Résultats négatifs
Comme on pouvait s'y attendre, si le premier argument date/heure est supérieur au second, le résultat sera un entier négatif.
SELECT TIMESTAMPDIFF(DAY,'2022-02-21','2022-02-01') AS 'Difference in Days';
Résultat :
+--------------------+ | Difference in Days | +--------------------+ | -20 | +--------------------+