Zur Startseite Die Berechnung von Zeitdifferenzen ist auch mit Hausmitteln von MySQL eigentlich recht einfach. Der Datentyp DATETIME hilft dabei, indem er ein Datum und eine Uhrzeit schon im korrekten Format in der Datenbank ablegt.
Um das zu veranschaulichen, hier einmal ein kleines Beispiel für eine solche Tabelle:
Anmerkung: Die hier vorgestellten Tabellen-Definitionen und Abfragen sollen lediglich das Prinzip verdeutlichen. Bei einigen Einzelheiten würde man in einer endgültigen Anwendung möglicherweise anders vorgehen. Sie dienen hier lediglich als Beispiele, damit das Verfahren anschaulich erläutert werden kann. In meinen Online-Kursen wird selbstverständlich genauer auf Einzelheiten eingegangen.
create table zeiten ( id int primary key auto_increment not null, abfahrt datetime, ankunft datetime); insert into zeiten (id, abfahrt, ankunft) values (0, '2005-04-01 18:00', '2005-04-01 18:10'), (0, '2005-04-01 23:00', '2005-04-02 00:00'), (0, '2005-04-01 23:00', '2005-04-02 05:00');
Hier werden in der Tabelle drei Situationen erzeugt:
Wer noch mit einer älteren MySQL-Version (vor Version 4.1.1) arbeitet, hat noch nicht die praktischen neuen Zeitfunktionen wie TIMEDIFF() zur Verfügung. In diesem Fall kann man die Zeitdifferenz so berechnen:
select *, unix_timestamp(ankunft) - unix_timestamp(abfahrt) from zeiten
Durch unix_timestamp werden die Daten in Sekunden (Anzahl Sekunden seit dem 01.01.1970) umgewandelt. Als Ergebnis bekommt man also die Zeitdifferenz in Sekunden. Die muss dann noch in Stunden:Minuten:Sekunden umgerechnet werden.
Die hier erhaltenen Lösungen sind: 600 Sekunden (also 10 Minuten) für das erste Beispiel, 3600 Sekunden (also eine Stunde) für das zweite Beispiel und 21600 Sekunden für das dritte Beispiel.
Wer schon die neuere Version ab 4.1.1 verwendet, kann diese Abfrage etwas bequemer gestalten:
Select *, TIMEDIFF(ankunft, abfahrt) from zeiten
Ergibt dann direkt die Zeitdifferenz in einem lesbaren Format. So ergibt die Abfrage im ersten Fall die Ausgabe "00:10:00" im zweiten Fall "01:00:00" und im dritten Fall "06:00:00".
Hinweis: Diesen Text und die enthaltenen Beispielprogramme und Skripte dürfen Sie zum Erlernen der einzelnen Techniken und auch als Grundlage für Ihre eigenen Projekte auf eigene Gefahr kostenlos nutzen.
Bitte denken Sie daran, dass alle Texte und Quellcodes trotzdem urheberrechtlich geschützt sind. Eine direkte Weitergabe ist nur nach ausdrücklicher schriftlicher Genehmigung gestattet.
Bisher keine Kommentare/Pingbacks für diesen Eintrag...