Sie könnten den TIMEDIFF()
und der TIME_TO_SEC()
funktioniert wie folgt:
SELECT TIME_TO_SEC(TIMEDIFF('2010-08-20 12:01:00', '2010-08-20 12:00:00')) diff;
+------+
| diff |
+------+
| 60 |
+------+
1 row in set (0.00 sec)
Sie könnten auch den verwenden UNIX_TIMESTAMP()
Funktion als @Amber vorgeschlagen
in einer anderen Antwort:
SELECT UNIX_TIMESTAMP('2010-08-20 12:01:00') -
UNIX_TIMESTAMP('2010-08-20 12:00:00') diff;
+------+
| diff |
+------+
| 60 |
+------+
1 row in set (0.00 sec)
Wenn Sie den TIMESTAMP
verwenden Datentyp, ich vermute, dass der UNIX_TIMESTAMP()
Lösung wäre etwas schneller, da TIMESTAMP
-Werte sind bereits als Ganzzahl gespeichert, die die Anzahl der Sekunden seit der Epoche darstellt (Quelle
). Zitieren der docs :
Wenn UNIX_TIMESTAMP()
wird auf einem TIMESTAMP
verwendet -Spalte gibt die Funktion den internen Zeitstempelwert direkt zurück, ohne implizite „String-zu-Unix-Zeitstempel“-Konvertierung.
Denken Sie daran, dass TIMEDIFF()
gibt den Datentyp TIME
. TIME
Werte können zwischen '-838:59:59' und '838:59:59' (ungefähr 34,96 Tage) liegen