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.

War es hilfreich?

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()

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top