Analysieren Sie das Auswahlproblem beim Speichern von Zeit- und Datumstypen in MySQL

Analysieren Sie das Auswahlproblem beim Speichern von Zeit- und Datumstypen in MySQL

In allgemeinen Anwendungen verwenden wir die Typen „Timestamp“, „Datetime“ und „Int“, um Zeitformate zu speichern:

int (entspricht Integer oder int in JavaBean)

1. Belegt 4 Bytes

2. Nach der Indizierung ist die Abfragegeschwindigkeit schnell

3. Bedingungsbereichssuche kann zwischen verwenden

4. Die von MySQL bereitgestellten Zeitfunktionen können nicht verwendet werden

Fazit: Geeignet für Datentabellen, die eine große Anzahl von Zeitbereichsabfragen erfordern

datetime (Datumstyp wird in JavaBean verwendet)

1. Belegt 8 Bytes

2. Lässt leere Werte zu, kann Werte anpassen und das System ändert den Wert nicht automatisch.

3. Tatsächlicher Formatspeicher (Speichert nur, was Sie gespeichert haben, und ruft dasselbe ab, was Sie gespeichert haben.)

4. Es hat nichts mit der ZEITZONE und der Konvertierung zu tun.

5. Sie können keinen Standardwert festlegen. Wenn Nullwerte nicht zulässig sind, müssen Sie den Wert des Datums-/Uhrzeitfelds manuell angeben, um Daten erfolgreich einzufügen.

6. Sie können die Variable now() verwenden, um beim Angeben des Werts des Datums-/Uhrzeitfelds automatisch die aktuelle Zeit des Systems einzufügen.

Fazit: Der Datums-/Uhrzeittyp eignet sich zum Aufzeichnen der ursprünglichen Erstellungszeit von Daten, denn unabhängig davon, wie Sie die Werte anderer Felder im Datensatz ändern, ändert sich der Wert des Datums-/Uhrzeitfelds nicht, sofern Sie ihn nicht manuell ändern.

Zeitstempel (Datums- oder Zeitstempeltyp in JavaBean)

1. Belegt 4 Bytes

2. Leere Werte sind zulässig, benutzerdefinierte Werte sind jedoch nicht zulässig, daher haben leere Werte keine Bedeutung.

3. TIMESTAMP-Werte dürfen nicht vor 1970 und nicht nach 2037 liegen. Dies bedeutet, dass ein Datum wie „1968-01-01“ zwar für einen DATETIME- oder DATE-Wert gültig ist, jedoch nicht für einen TIMESTAMP-Wert und in 0 konvertiert wird, wenn es einem solchen Objekt zugewiesen wird.

4. Der Wert wird im UTC-Format gespeichert (er speichert die Anzahl der Millisekunden)

5. Zeitzonenkonvertierung: Konvertieren Sie die aktuelle Zeitzone beim Speichern und konvertieren Sie sie beim Abrufen zurück in die aktuelle Zeitzone.

6. Der Standardwert ist CURRENT_TIMESTAMP(), was tatsächlich der aktuellen Systemzeit entspricht.

7. Die Datenbank ändert ihren Wert automatisch, sodass Sie beim Einfügen von Datensätzen weder den Namen noch den Wert des Zeitstempelfelds angeben müssen. Sie müssen beim Entwerfen der Tabelle lediglich ein Zeitstempelfeld hinzufügen. Nach dem Einfügen wird der Wert des Felds automatisch zur aktuellen Systemzeit.

8. Wenn Sie in Zukunft irgendwann einen Datensatz in der Tabelle ändern, wird der Zeitstempelwert des entsprechenden Datensatzes automatisch auf die aktuelle Systemzeit aktualisiert.

Fazit: Der Zeitstempeltyp eignet sich zum Aufzeichnen der letzten Änderungszeit von Daten, da der Wert des Zeitstempelfelds automatisch aktualisiert wird, sobald Sie den Wert anderer Felder im Datensatz ändern.

Zusammenfassen

Oben geht es um die Analyse des Auswahlproblems beim Speichern von Zeit- und Datumstypen in MySQL. Interessierte Freunde können sich folgendes ansehen: Beispiel für Optimierungsfähigkeiten in MySQL-Anweisungsunterabfragen, Beispielanalyse für die Optimierung von MySQL-Unterabfragen und verschachtelten Abfragen, MySQL-Optimierung mit Verbindung (Join) anstelle von Unterabfragen usw. Wenn Sie Fragen haben, können Sie jederzeit eine Nachricht hinterlassen und der Herausgeber wird Ihnen rechtzeitig antworten. Ich hoffe, das hilft Ihnen allen.

Das könnte Sie auch interessieren:
  • Erläuterung des Problems bei der Auswahl des MySQL-Speicherzeittyps
  • So wählen Sie den richtigen MySQL-Datums-/Uhrzeittyp zum Speichern Ihrer Zeit
  • Lösen Sie das Problem der inkonsistenten MySQL-Speicherzeit
  • MySQL-Anweisung zum Abrufen aller Daten oder Monate in einem angegebenen Zeitraum (ohne Festlegen gespeicherter Prozeduren oder Hinzufügen von Tabellen)
  • Best Practices-Handbuch zum Speichern von Daten in MySQL

<<:  js implementiert Tabellen-Drag-Optionen

>>:  Detaillierte Erklärung zur Begrenzung des Update-/Löschbereichs mit dem MySQL-Parameter sql_safe_updates

Artikel empfehlen

Drei BOM-Objekte in JavaScript

Inhaltsverzeichnis 1. Standortobjekt 1. URL 2. Ei...

Detaillierte Erklärung des Unterschieds zwischen Vue-Lebenszyklus

Lebenszyklusklassifizierung Jede Komponente von V...

Detaillierte Erläuterung des Ausführungsprozesses der JavaScript-Engine V8

Inhaltsverzeichnis 1. V8-Quelle 2. V8-Serviceziel...

Gängige Stile von CSS-Animationseffekten

Animation Definieren Sie eine Animation: /*Legen ...

SQL-Implementierung LeetCode (176. Zweithöchstes Gehalt)

[LeetCode] 176. Zweithöchstes Gehalt Schreiben Si...

JS, CSS und HTML zur Implementierung der Registrierungsseite

Eine mit HTML und CSS implementierte Registrierun...

Sollten nullbare Felder in MySQL auf NULL oder NOT NULL gesetzt werden?

Personen, die MySQL häufig verwenden, können mit ...

Beispielmethode zum Bereitstellen eines React-Projekts auf Nginx

Testprojekt: react-demo Klonen Sie Ihr React-Demo...

Detailliertes Tutorial zur schnellen Installation von Zookeeper in Docker

Docker: Zookeeper schnell installieren Ich habe Z...

Lösung für das MySQL IFNULL-Beurteilungsproblem

Problem: Die von mybatis zurückgegebenen Daten vo...

Detaillierte Verwendung des Docker-Maven-Plugins

Inhaltsverzeichnis Docker-Maven-Plugin Schritte z...

Eine detaillierte Anleitung zu benutzerdefinierten Anweisungen in Vue

Inhaltsverzeichnis 1. Was ist eine benutzerdefini...