Je souhaite soustraire entre deux valeurs de date et heure à l'aide de SQL dans MySQL, de manière à obtenir l'intervalle en minutes ou en secondes. Des idées? Je veux exécuter une requête SQL qui récupère les utilisations d'une base de données qui se sont connectées environ 10 minutes plus tard.
Il existe des fonctions TIMEDIFF (expr1, expr2), qui renvoie la valeur de expr1-expr2, et TIME_TO_SEC (expr3), qui exprime expr1 en secondes.
Notez que expr1 et expr2 sont des valeurs de date/heure et expr3 est une valeur de temps uniquement.
Vérifiez ce lien pour plus d’informations.
TIMESTAMPDIFF est comme TIMEDIFF, comme le dit Matthew, sauf qu'il renvoie la différence entre les deux dates/heures dans les unités souhaitées (secondes, minutes, heures, etc.).
Par exemple,
SELECT TIMESTAMPDIFF(MINUTE,LogOutTime,LogInTime) AS TimeLoggedIn
FROM LogTable
Renverrait le nombre de minutes pendant lesquelles l'utilisateur était connecté (en supposant que vous stockiez ce genre de chose dans un tableau comme celui-ci).
Je le ferais comme ceci - chercher où la dernière activité est à 10 minutes
SELECT * FROM table WHERE last_activity >= DATE_SUB(NOW(), INTERVAL 10 MINUTE)
SELECT TIMESTAMPDIFF (MINUTE, LogOutTime, LogInTime) AS TimeLoggedIn FROM LogTable
Cet exemple gâchera le temps s'il est utilisé en utilisant le temps millitaire. Donc, pour calculer le temps millionnaire, je ne le recommande pas, car il génère des valeurs négatives.