Kermit: Rechnen mit Datum

Beitrag lesen

Der MySQL-Typ timestamp hat nichts mit dem Unix-Timestamp zu tun (den auch PHP verwendet).

Er hat den gleichen Wertebereich, siehe oben. Nur die Darstellung ist anders.

"Nur" ist gut, das ist der große Haken an der ganzen Angelegenheit. Der Wertebereich ist zumindest im vorliegenden Fall herzlich nebensächlich.

Der Punkt ist, dass man Unix-Timestamp und MySQL-Timestamp nicht einfach austauschen kann, die beiden Typen lassen sich weder direkt vergleichen noch verhalten sie sich bei Berechnungen gleich. Sie können denselben Zeitpunkt darstellen, aber es sind nicht die gleichen Typen.

MySQL[-Timestamp] 20050703103800 (2005 Juli 3. 10:38:00) entspricht dem Unix-Timestamp 1120379880.

Die Default-Formatierung von TIMESTAMP ist ab MySQL 4.1 die gleiche wie von DATETIME, also 2005-07-03 10:38:00.

Who cares, bei MySQL lassen sich Datum und Zeit auf verschiedene Art und Weisen angeben. Ich ziehe das Eintippen von 20050703103800 jenem von "2005-07-03 10:38:00" vor.
Außerdem geht es darum, die grundverschiedenen Werte für denselben Zeitpunkt herauszustellen.

In jedem Fall kann zwischen Unix-Timestamp und MySQL-Typen mit den MySQL-Funktionen unix_timestamp() bzw from_unixtime() umgerechnet werden.

Ja, aber auch nur innerhalb des Wertebereichs von Unix-/MySQL-Timestamps.

Naja, das beim Umwandeln in einen Unix-Timestamp nur ein Unix-Timestamp rauskommen kann, mit all seinen Stärken und Schwächen, finde ich eigentlich nur logisch.

Grüngrüß.