webentwicklung-frage-antwort-db.com.de

Wie subtrahiere ich mit SQL in MYSQL zwischen zwei Datumszeitwerten und erhalte das Ergebnis in Minuten oder Sekunden?

Ich möchte zwischen zwei Datumszeitwerten mit SQL in MySQL subtrahieren, sodass ich das Intervall in Minuten oder Sekunden erhalte. Irgendwelche Ideen? Ich möchte eine SQL-Abfrage ausführen, die Verwendungsdaten aus einer Datenbank abruft, die sich etwa 10 Minuten vor dem Zeitpunkt angemeldet haben.

39
Ali

Es gibt Funktionen TIMEDIFF (expr1, expr2), die den Wert von expr1-expr2 zurückgeben, und TIME_TO_SEC (expr3), die expr1 in Sekunden ausdrücken.

Beachten Sie, dass expr1 und expr2 datetime-Werte sind und expr3 nur ein Zeitwert ist.

Überprüfen Sie diesen Link für weitere Informationen.

59
Matthew Jones

TIMESTAMPDIFF ist wie TIMEDIFF, was Matthew angibt, außer, es gibt die Differenz der beiden Datumsangaben in beliebigen Einheiten (Sekunden, Minuten, Stunden usw.) zurück.

Zum Beispiel,

SELECT TIMESTAMPDIFF(MINUTE,LogOutTime,LogInTime) AS TimeLoggedIn
FROM LogTable

Gibt die Anzahl der Minuten zurück, für die der Benutzer angemeldet war (vorausgesetzt, Sie haben solche Dinge in einer solchen Tabelle gespeichert).

53
Welbog

Ich würde es so machen - abrufen, wo die letzte Aktivität innerhalb von 10 Minuten ist

SELECT * FROM table WHERE last_activity >= DATE_SUB(NOW(), INTERVAL 10 MINUTE)
10

SELECT TIMESTAMPDIFF (MINUTE, LogOutTime, LogInTime) AS TimeLoggedIn FROM LogTable


Dieses Beispiel soll die Zeit ruinieren, wenn es unter Verwendung von Millitärzeit verwendet wird. Für die Berechnung der Millitair-Zeit empfehle ich sie nicht, da sie negative Werte ausgibt.

0