MySQL Forums
Forum List  »  German

TimeDiff
Posted by: Osi B
Date: April 11, 2013 06:50AM

Hallo zusammen ich habe folgendes Problem:

Datensatz id= 47:
start_time: 2013-04-10 19:00:00
end_time: 2013-04-10 19:30:00

Datensatz id= 51:
start_time: 2013-04-11 22:30:00
end_time: 2013-05-11 03:00:00

Ich möchte von diesen Daten die Time-Differenz ermitteln. Hierzu habe ich folgendes SQL-Statements: SELECT TIMEDIFF( end_time, start_time ) AS time_diff FROM time

Nur möchte ich, dass ich die Ausgabe in diesem Form erhalte: hh:mm:ss. Hierzu verwende ich TIME_FORMAT.

Nun sieht mein Befehl wie folgt aus:

Query: SELECT TIME_FORMAT( TIMEDIFF( end_time, start_time ) , "%h:%i" ) AS time_diff FROM time WHERE id = 51

Liefert : 04:30 => Das ist richtig!

Jetzt nehme ich den Datensatz mit der ID 47 dann sieht erhalte ich 12:30 und das wäre falsch. Also ändere ich die TIME_FORMAT Parameter wie folt:


Query: SELECT TIME_FORMAT( TIMEDIFF( end_time, start_time ) , "%H:%i" ) AS time_diff FROM time WHERE id = 47

Liefert: 00:30 => Das ist richtig!


Also sage ich, na gut, dann nehme ich "%H:%i". Nur ist das Problem, dass dies dann nicht mehr funktioniert, wenn der end_time ein Tag oder mehrere Tage später als das der start_time foglt. Wie im Beispiel vom Datensatz id 51: Da sieht es dann wie folgt aus, wenn ich die TIME_FORMAT Parameter anpasse:

Query: SELECT TIME_FORMAT( TIMEDIFF( end_time, start_time ) , "%H:%i" ) AS time_diff FROM time WHERE id = 51

Liefert: 700:30 => FALSCH!

Was soll 700 heissen? Ich sollte da 04:30 erhalten wie bei "%h:%i"


Weiss da jemand Bescheid? Was mache ich eventuell Falsch?



Edited 1 time(s). Last edit at 04/11/2013 07:02AM by Osi B.

Options: ReplyQuote


Subject
Views
Written By
Posted
TimeDiff
2188
April 11, 2013 06:50AM
736
April 12, 2013 04:14AM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.