Das Feld Timestamp hat sich mit der Zeit gewandelt, hier wird MySQL ab Version 5 behandelt.
Der entscheidende Unterschied, ist dass DATETIME ein Datum (wie in einem Kalender) repräsentiert, wohingegen der TIMESTAMP einen genau definierten Zeitpunkt repräsentiert.
Die Unterscheidung ist sehr wichtig, wenn die Anwendung verschiedene Zeitzonen unterstützt.
Wie lange ist der '2011-01-13 21:51:00 her? Das hängt von der Zeitzone ab, in der man sich befindet. Für mich ist dieser Zeitpunkt nur ein paar Sekunden her, während ich diesen Artikel schreibe.
Je nach Zeitzone, könnte der Zeitstempel für dich in der Zukunft liegen.
Wenn ich stattdessen gesagt hätte 1294951440 Sekunden seit '1970-01-01 00:00:00 UTC' gesagt hätte, wüsste man genau welcher Zeitpunkt gemeint war.
Zum Speichern werden TIMESTAMPs also von der aktuellen Zeitzone in die UTC Zeit konvertiert, dagegen wird die Zeit beim Lesen wieder zurück konvertiert.
Bei DATETIME werden hingegen finden keine solchen Konvertierungen statt.
Im Normalfall wird die aktuelle Uhrzeit vom Server bestimmt. Aber die Zeitzone kann auch für die MySQL Connection gesetzt werden.
Mehr Informationen unter:
Der entscheidende Unterschied, ist dass DATETIME ein Datum (wie in einem Kalender) repräsentiert, wohingegen der TIMESTAMP einen genau definierten Zeitpunkt repräsentiert.
Die Unterscheidung ist sehr wichtig, wenn die Anwendung verschiedene Zeitzonen unterstützt.
Wie lange ist der '2011-01-13 21:51:00 her? Das hängt von der Zeitzone ab, in der man sich befindet. Für mich ist dieser Zeitpunkt nur ein paar Sekunden her, während ich diesen Artikel schreibe.
Je nach Zeitzone, könnte der Zeitstempel für dich in der Zukunft liegen.
Wenn ich stattdessen gesagt hätte 1294951440 Sekunden seit '1970-01-01 00:00:00 UTC' gesagt hätte, wüsste man genau welcher Zeitpunkt gemeint war.
Zum Speichern werden TIMESTAMPs also von der aktuellen Zeitzone in die UTC Zeit konvertiert, dagegen wird die Zeit beim Lesen wieder zurück konvertiert.
Bei DATETIME werden hingegen finden keine solchen Konvertierungen statt.
Im Normalfall wird die aktuelle Uhrzeit vom Server bestimmt. Aber die Zeitzone kann auch für die MySQL Connection gesetzt werden.
Mehr Informationen unter:
7.931 mal gelesen