Je zou de TIMEDIFF()
en de TIME_TO_SEC()
werkt als volgt:
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)
U kunt ook de gebruiken UNIX_TIMESTAMP()
functioneren als @Amber voorgesteld
in een ander antwoord:
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)
Als u de TIMESTAMP
. gebruikt gegevenstype, vermoed ik dat de UNIX_TIMESTAMP()
oplossing zou iets sneller zijn, aangezien TIMESTAMP
waarden zijn al opgeslagen als een geheel getal dat het aantal seconden vertegenwoordigt sinds het tijdperk (Bron
). Citaat van de docs :
Wanneer
UNIX_TIMESTAMP()
wordt gebruikt op eenTIMESTAMP
kolom, retourneert de functie de interne tijdstempelwaarde rechtstreeks, zonder impliciete conversie van 'tekenreeks naar Unix-tijdstempel'.Houd er rekening mee dat
TIMEDIFF()
retourgegevenstype vanTIME
.TIME
waarden kunnen variëren van '-838:59:59' tot '838:59:59' (ongeveer 34,96 dagen)