Eintrag-Details: Datum- und Zeitberechnung in MySQL

31.01.2006

Datum- und Zeitberechnung in MySQL

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.

[Mehr:]

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');

Code herunterladen

Hier werden in der Tabelle drei Situationen erzeugt:

  • Eine Abfahrt und Ankunft am gleichen Tag mit 10 Minuten Differenz
  • Eine Abfahrt und Ankunft am gleichen Tag direkt um Mitternacht
  • Eine Abfahrt und Ankunft über einen Tag hinweg

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 

Code herunterladen

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

Code herunterladen

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.

Permalink 31.01.2006 11:00:29, von Marian eMail , 357 Wörter, 11012 mal angeschaut   German (DE) Kategorien: MySQL
Permalink

Kommentare, Pingbacks:

Bisher keine Kommentare/Pingbacks für diesen Eintrag...

Werbung

Online-Kurse

  • Bequem PHP lernen bei freier Zeiteinteilung von zuhause
  • Der Onlinekurs den jeder versteht
  • www.lernpilot.de/wbt/

Konnte ich helfen?

mehr Werbung

viagra online|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50|51|52|53|54|55|56|57|58|59|60|61|62|63|64|65|66| levitra overdose effects levitra overdose symptoms which is stronger levitra or viagra cialis levitra or viagra levitra or viagra which is better levitra interactions alcohol levitra uk side effects levitra uk online generic levitra uk levitra use for women levitra use instructions levitra user group levitra tabs 20mg levitra trial coupon levitra time effectiveness levitra time frame levitra ratings and reviews levitra effects viagra levitra effects use levitra effects forum levitra effects liver levitra effects women levitra effectiveness reviews levitra women effect standard levitra dose levitra generic medication levitra generic viagra levitra generic cheap levitra generic drug levitra generic available