dedlfix: MYSQL STRING Datum zu TIMESTAMP konvertieren

Beitrag lesen

Hi!

Eien Unix-Timestamp ist nicht das, was man in ein TIMESTAMP-Feld füllen will.
Der Unix-Timestamp (auch epoch genannt, Anzahl Sekunden seit 01.01.1970 00:00:00) ist eigentlich nichts was man in einer Datenbank speichern will.

Sagen wir mal so: Intern speichert MySQL anzunehmenderweise zwar einen Unix-Timestamp in einem TIMESTAMP-Feld, doch nach außen hin sieht er wie ein DATETIME aus und muss auch genauso behandelt werden.

Der Timestamp (YYYY-MM-DD HH:MM:SS) braucht nicht mehr Speicherplatz, ist aber direkt mit den MySQL'schen Datumsfunktionen benutzbar. Und im Zweifelsfall via PhpMyAdmin (o.ä.) für Menschen lesbar. Datümser™ will man nicht als Integer speichern.

Der gleiche Speicherverbrauch ((4-Byte-)Integer und TIMESTAMP) unterstützt meine obige Annahme, die angenehmere Verarbeitung aufgrund der "Außenwirkung" will man ebenfalls nicht missen. Wie die Datümser™ intern gespeichert werden, kann ja egal sein, wie sie behandelt werden, ist es nicht. Um eine Formatierung zu bekommen, die für einen bestimmten Anwendungsfall erforderlich ist, kann man entspechende Funktionen verwenden (zum Beispiel DATE_FORMAT() und auch UNIX_TIMESTAMP()).

Lo!