MySQL Timestamp Defaultwert ändern

dAk0Ta

Mitglied
Hallo.

Ich habe ein kleines Problem. Undzwar brauche ich bei einem Timestamp den Defaultwert 00000000000000 aber der macht da automatisch immer den Wert 0000-00-00 00:00:00 hin. Kann mir da einer evtl. helfen?

Besten Dank schonmal...
 
Mit einem Feld vom Typ TIMESTAMP geht das nicht. Das einzige, was man da rein schreiben kann, das nicht das Timestamp-Format (YYYY-MM-DD HH:MM:SS) hat, ist NULL - und das auch nur, wenn das Feld nicht als NOT NULL definiert ist. Das ist auch die gängige Methode, um die Information "Wert nicht definiert" zu speichern. Definere das Feld als "TIMESTAMP NULL DEFAULT NULL", man kann dann auch explizit NULL da rein schreiben. Wenn Du dann im SELECT das Feld per IFNULL(`feld`, '00000000000000') abfrägst, dann hast Du annähernd den gewünschten Effekt.

Wenns partout die 14 Nullen sein müssen, dann geht als Datentyp nur VARCHAR(14), das führt aber dazu, dass die ganze Timestamp-Funktionalität beim Teufel ist und von der Anwendung (PHP) oder von MySQL-Funktionen übernommen werden muss. Nicht toll.

Eine weitere Möglichkeit wäre ein INT-Feld, in das ein UNIX-Timestamp geschrieben wird. Hat aber auch seine Tücken, der Wert 0 (oder auch 00000000000000) entspräche dann ja Mitternacht am 1.1.1970...

Grüße,
Martin
 
Zurück