Zum Inhalt springen

[MYSQL] - Datum speichern


oneside

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 1 Jahr später...

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...