Wie bekomme ich den Unterschied zwischen zwei DateTimes in MySQL?
Frage
Ich versuche das
SELECT DATEDIFF(second,log.start_time,log.end_time)
as seconds
from log
where log.log_id = "some crazy UUID";
Aber ich bekomme einen Fehler, weil DATEDIFF()
Akzeptiert keine Formatierer -Extra wie die zweite.
Also habe ich es versucht,
SELECT second(DATEDIFF(second,log.start_time,log.end_time))
as seconds
from log
where log.log_id = "some crazy UUID";
Aber das funktioniert auch nicht zur Formatierung.
Lösung
Ich denke, Sie wollten verwenden TIMESTAMPDIFF()
Anstatt von DATEDIFF()
:
SELECT TIMESTAMPDIFF(second,log.start_time,log.end_time) as seconds
from log
where log.log_id = "some crazy UUID";
Andere Tipps
Versuche dies
SELECT TIME_TO_SEC( TIMEDIFF( log.start_time, log.end_time )) AS seconds
FROM log
WHERE log.log_id = "some crazy UUID";
Datediff akzeptieren nur zwei Parameter und Sie bestehen hier drei Parameter.
Wie es funktioniert und es gibt auch nur den Unterschied b/w zurück, ohne Zeit zu enthalten.
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html
DATEDIFF()
Gibt Tage des Unterschieds zurück.
Verwenden TIMEDIFF()
oder beide Zeitstempel mit konvertieren mit TO_SECONDS()
) und bekommen ihren Unterschied:
SELECT TO_SECONDS(log.end_time) - TO_SECONDS(log.start_time) AS seconds
FROM log
WHERE log.log_id = "some crazy UUID"
;
Datiert :
Von dem msdn, Es gibt die Anzahl (signierte Ganzzahl) der angegebenen Datumspart -Grenzen zurück, die zwischen dem angegebenen Startdat und dem Enddat gekreuzt werden. Das DATEDIFF()
Die Funktion gibt die Zeit zwischen zwei Daten zurück. Syntax :
DATEDIFF ( datepart , startdate , enddate )
Du solltest benutzen TIMEDIFF()
oder TIMESTAMPDIFF()
Funktion.
Einfach ersetzen TIMESTAMPDIFF()
Funktion mit DATEFDIFF()