web-dev-qa-db-fra.com

Comment soustrais-je à l'aide de SQL dans MYSQL entre deux valeurs d'heure et récupère le résultat en minutes ou en secondes?

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.

39
Ali

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.

59
Matthew Jones

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).

53
Welbog

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)
10
David Snabel-Caunt

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.

0
Jasper Lankhorst