Soll ich einen großen INT oder regulären INT in MySQL verwenden, um einen Zeitstempel zu speichern?

8

Soll ich in MySQL eine große Ganzzahl oder eine normale Ganzzahl verwenden, um einen Timerstamp zu speichern? Ich plane, es in einem INT zu speichern und nicht den eingebauten Zeitstempel oder datetime also welchen INT Typ sollte ich verwenden?

    
JasonDavis 08.01.2010, 22:29
quelle

3 Antworten

11

Int würde 2038 zu einem Negativ wechseln (wenn Sie einen UNIX-Zeitstempel verwenden): Ссылка .

also ist BIGINT wahrscheinlich die sicherste Wahl

    
zmbush 08.01.2010, 22:35
quelle
13

Sie sollten es in einem Zeitstempel speichern, da dies wahrscheinlich das ist, was das DBMS für Zeitstempeldaten optimiert.

Ich bin neugierig, warum Sie all die harte Arbeit opfern würden, die die MySQL-Entwickler dafür verwendet haben, Zeitstempel so zu gestalten, wie sie sollten, und sie durch etwas zu ersetzen, das mit ziemlicher Sicherheit nicht funktionieren wird.

Da Sie nicht angeben, warum Sie eine Ganzzahl verwenden möchten, gehe ich davon aus, dass es sich um vorübergehenden Wahnsinn handelt und Sie sich bald erholen werden: -)

    
paxdiablo 08.01.2010 22:33
quelle
9

Ich denke, es hängt ganz davon ab, was Sie tun wollen. Es gibt ein paar richtige Typen für Zeit / Datum-Typen (siehe: Ссылка )

  • DATE - typischerweise 3 Bytes, Bereich: 1000-01-01 bis 9999-12-31 .
  • DATETIME - 8 Bytes, Bereich 1000-01-01 00:00:00 bis 9999-12-31 23:59:59
  • TIMESTAMP - 4 Byte Bereich 1970-01-01 00:00:01 UTC bis 2038-01-19 03:14:07 UTC. Dann sind einige semantische Probleme zu beachten:

(int ist 4 Bytes wie TIMESTAMP, bigint ist 8 Bytes wie DATETIME)

  • date speichert Kalendertage, datetime und timestamp speichert Datum und Uhrzeit mit einer zweiten Genauigkeit (die Genauigkeit in Sekunden wird in der Datumsarithmetik unterstützt, nicht jedoch im Speicher)
  • Zeitstempel speichert einen UTC-Wert. Das heißt, jeder Wert, den Sie dort beibehalten, wird von der Zeitzone der Sitzung (standardmäßig die Zeitzone des Servers) in UTC konvertiert und gespeichert. Beim Abruf wird der UTC-Wert wieder in die in der Sitzung gültige Zeitzone zurückkonvertiert.
  • Der Zeitstempel
  • kann so deklariert werden, dass er beim Einfügen oder Aktualisieren oder beidem automatisch den aktuellen Zeitstempel erhält. Am besten lesen Sie das Handbuch für die Details (siehe Ссылка )
Roland Bouman 08.01.2010 22:58
quelle

Tags und Links