Maison > base de données > tutoriel mysql > Comment calculer les différences de temps entre des lignes consécutives dans un tableau ?

Comment calculer les différences de temps entre des lignes consécutives dans un tableau ?

Susan Sarandon
Libérer: 2024-11-28 06:56:17
original
537 Les gens l'ont consulté

How to Calculate Time Differences between Consecutive Rows in a Table?

Calcul des différences de temps entre des lignes consécutives

Vous disposez d'un tableau contenant une colonne StartDate et souhaitez calculer la différence de temps entre deux lignes adjacentes. Pour ce faire, suivez ces étapes :

  1. Implémentez une auto-jointure : Pour relier les lignes voisines, effectuez une auto-jointure sur la table. Cependant, assurez-vous que la condition de jointure est appropriée.
  2. Join sur les ID de demande séquentiels : Pour calculer la différence de temps entre des lignes consécutives, joignez-vous aux ID de demande qui augmentent séquentiellement de un. Ceci peut être réalisé en utilisant la condition de jointure suivante : B.requestid = (A.requestid 1).
  3. Calculer le décalage horaire : Après avoir joint les lignes, récupérez le décalage horaire à l'aide de l'expression ( B.starttime - A.starttime). Ce calcul soustrait la StartDate de la ligne précédente de celle de la ligne actuelle, fournissant ainsi la différence de temps entre elles.

Si les ID de requête ne sont pas consécutifs, vous pouvez exploiter la requête suivante :

SELECT A.requestid, A.starttime, (B.starttime - A.starttime) AS timedifference
FROM MyTable A CROSS JOIN MyTable B
WHERE B.requestid IN (SELECT MIN (C.requestid) FROM MyTable C WHERE C.requestid > A.requestid)
ORDER BY A.requestid ASC
Copier après la connexion

Cette requête utilise une jointure croisée et sélectionne l'ID de requête minimum supérieur à l'ID de requête actuel à partir d'une sous-requête. Par la suite, il calcule le décalage horaire comme auparavant.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal