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 eenTIMESTAMPkolom, retourneert de functie de interne tijdstempelwaarde rechtstreeks, zonder impliciete conversie van 'tekenreeks naar Unix-tijdstempel'.Houd er rekening mee dat
TIMEDIFF()retourgegevenstype vanTIME.TIMEwaarden kunnen variëren van '-838:59:59' tot '838:59:59' (ongeveer 34,96 dagen)