oneside Geschrieben 14. März 2006 Teilen Geschrieben 14. März 2006 Hallo, in einer MySQL DB kann man ein Datum ja in folgenden Spaltentypen abspeichern: DATE = 3 Bytes DATETIME = 8 Bytes TIMESTAMP = 4 Bytes Jetzt habe ich öfters schon gesehen, dass viele das Datum als Timestamp in einem int(11)-Feld ablegen: INT = 4 Bytes Wäre also gegenüber dem DATE-Feld (1) Byte mehr. Welche Vorteile ergeben sich durch die Speicherung des Unix-Timestamps in einem int(11) Feld und wieso wird das gemacht? Wie speichert Ihr euer Datum in einer MySQL DB und wieso? Gruß Oneside Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 14. März 2006 Teilen Geschrieben 14. März 2006 DATE = 3 Bytes DATETIME = 8 Bytes TIMESTAMP = 4 Bytes DATE = Datum (nur Datum, also Tag, Monat, Jahr) TIMESTAMP = Zeit (nur Zeit, also Stunde, Minute, Sekunde ...) DATETIME = Datum + Zeit Wie ich das speichere? Kommt darauf an, wie ich es nutzen will. Einfach nur um festzuhalten, wann ein Satz geändert oder angelegt wurde: DATETIME. In einem Log (Internetzugriffe z.B.) mach ich es ganz gern als ein DATE und ein TIMESTAMP Feld. So kann ich leicht alle Sätze für ein Datum filtern und die dann nach Zeit sortieren z.B. EDIT: TIMESTAMP stimmt nicht ganz. Für das von mir genannte gibt es den Typ TIME. Datetime und Timestamp unterscheiden sich in der Art, wie das Datum gespeichert ist: DATETIME = '1000-01-01 00:00:00' + '9999-12-31 23:59:59' TIMESTAMP = 19700101000000 - 2037+ (so steht es in der Beschreibung, was immer das + bedeutet ) EDIT2: Timestamp ist also der Unix-Timestamp, und für Unix fängt die Zeit 1970 erst an. Datetime geht vom Jahr 1000 bis zum Jahr 9999. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 14. März 2006 Teilen Geschrieben 14. März 2006 Bei alten Mysql Versionen wurde timestamp automatisch aktualisiert wenn der Datensatz geändert wurde. Deswegen haben vielleicht auch einige das Datum als int gespeichert. Oder weil sie einfach kein datetime kennen. Gruß Jaraz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
oneside Geschrieben 14. März 2006 Autor Teilen Geschrieben 14. März 2006 Gibt es nicht das Feldattribut "ON UPDATE CURRENT TIMESTAMP" dafür? Welchen Feldtyp braucht man dafür denn dann? "TIMESTAMP"? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Pinhead Geschrieben 14. März 2006 Teilen Geschrieben 14. März 2006 Welchen Feldtyp braucht man dafür denn dann? "TIMESTAMP"? Mein Bauchgefühl sagt hier ganz laut Ja. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
KingOfQueens Geschrieben 3. März 2008 Teilen Geschrieben 3. März 2008 Auch hierzu nochmal eine Frage: Ich habe eine SQL Datenbank, und möchte für jeden neuen Eintrag, der in die Datenbank gespeichert wird, die aktuelle Zeit mit Datumsangabe speichern. Dies soll einfach in einer neuer Spalte gespeichert werden, damit ich weiß, wann dieser Eintrag erstellt wurde. Die Struktur steht leider schon, wie muss ich die Einstellungen vornehmen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 5. März 2008 Teilen Geschrieben 5. März 2008 die neue spalte sollte ein TIMESTAMP sein und als DEFAULT sollte CURRENT_TIMESTAMP definiert sein. dann wird bei INSERT-DMLs automatisch der aktuelle timestamp im feld landen. andererseits kannst du auch das INSERT-statement um das feld und die funktion NOW() erweitern. MySQL :: MySQL 5.0 Reference Manual :: 10.3.1.1 TIMESTAMP Properties s'Amstel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.