Mysql
 sql >> Base de données >  >> RDS >> Mysql

TIMESTAMPDIFF() Exemples – MySQL

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 |
+--------------------+