Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

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.

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

Gibt es nicht das Feldattribut "ON UPDATE CURRENT TIMESTAMP" dafür?

Welchen Feldtyp braucht man dafür denn dann? "TIMESTAMP"?

  • 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?

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

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.