Lösen Sie das Problem der inkonsistenten MySQL-Speicherzeit

Lösen Sie das Problem der inkonsistenten MySQL-Speicherzeit

Nachdem die Systemzeit mit Java ermittelt und in der MySQL-Datenbank gespeichert wurde, stellt sich heraus, dass die Datenbankspeicherung nicht mit der Ortszeit übereinstimmt, wenn der Zeittyp „Datum/Uhrzeit“ oder „Zeitstempel“ ist.

Ein wichtiger Grund ist, dass die für MySQL eingestellte Zeitzone nicht mit Ihrer lokalen Zeitzone übereinstimmt. Die Lösung besteht darin, die MySQL-Zeitzonenkonfiguration zu ändern. Sie finden dies, indem Sie online suchen.

Ich empfehle die zweite Methode

Legen Sie es einfach in der DBUtil-Klasse fest, die entsprechend den tatsächlichen Anforderungen Ihres Projekts eine Verbindung zur Datenbank herstellt. Beispielsweise habe ich im folgenden Code die Zeitzone auf die gleiche Zeitzone wie Shanghai, Asien geändert.

privater statischer String-Treiber = "com.mysql.cj.jdbc.Driver";
    private statische String-URL = "jdbc:mysql://127.0.0.1:3306/mypetstore?serverTimezone=Asia/Shanghai&useSSL=false";

Zum Einstellen der Zeitzone wird serverTimezone=Asia/Shanghai verwendet.

Beim Abrufen von Timestamp-Daten aus MySQL und der Anzeige im Browser kommt am Ende immer eine .0, was sehr ärgerlich ist. Was kann ich tun?

Sie können den folgenden EL-Ausdruck und die JSTL-Tags zur Formatierung verwenden, wobei log.date die Zeitdaten sind, die gefunden wurden

<fmt:formatDate Wert="${log.date}" Typ="Datum" Muster="jjjj-MM-tt HH:mm:ss" />

Hinweis: Wenn Sie es als yyyy-MM-dd hh:mm:ss schreiben, wird nicht zwischen Vormittag und Nachmittag unterschieden

Ergänzung: Problem mit falscher Mysql-Speicherzeit oder -Datumsausrichtung

Hier wird das Problem diskutiert, dass beim Hinzufügen von Datensätzen zur MySQL-Datenbank das Datum um einen Tag verschoben wird oder die Uhrzeit falsch ist.

Problem-Szenarien

Es gibt kein Problem mit der Codelogik. Bei der schrittweisen Ausführung habe ich festgestellt, dass das Datum beim Speichern korrekt war, beim Speichern in der Datenbank jedoch falsch.

Grund

Der Grund liegt in dem Problem mit den Parametern, die Sie beim Konfigurieren der Datenquellenverbindung hinzugefügt haben. Wenn ich richtig vermute, sollte der von Ihnen konfigurierte Parameter serverTimezone UTC sein. Dies liegt daran, dass die falsche Zeitzone verwendet wird, was dazu führt, dass das Datum beim Speichern von Daten falsch platziert wird.

Bildbeschreibung hier einfügen

Lösung

Stellen Sie die Server-Zeitzone wie unten gezeigt auf Asien/Shanghai ein. Versuchen Sie es erneut und das Problem wird gelöst.

Bildbeschreibung hier einfügen

Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Sollten dennoch Fehler oder unvollständige Überlegungen vorliegen, freue ich mich über eine Korrektur.

Das könnte Sie auch interessieren:
  • Analysieren Sie das Auswahlproblem beim Speichern von Zeit- und Datumstypen in MySQL
  • Erläuterung des Problems bei der Auswahl des MySQL-Speicherzeittyps
  • So wählen Sie den richtigen MySQL-Datums-/Uhrzeittyp zum Speichern Ihrer Zeit
  • 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

<<:  Webdesigner sollten Webseiten unter drei Aspekten optimieren

>>:  Analyse der Prinzipien von Docker-Containern

Artikel empfehlen

Codebeispiel für die Implementierung des Linux-Verzeichniswechsels

Das Wechseln von Dateien ist eine gängige Operati...

Richtige Verwendung der Vue-Funktion Anti-Shake und Throttling

Vorwort 1. Entprellen: Nach dem Auslösen eines Ho...

Zwei Möglichkeiten zum korrekten Bereinigen von MySQL-Binlog-Protokollen

mysql bereinigt Binlog-Protokolle korrekt Vorwort...

Die am häufigsten verwendete HTML-Escape-Sequenz

In HTML haben <, >, & usw. eine speziell...

Vue-Methode zum Überprüfen, ob der Benutzername verfügbar ist

In diesem Artikelbeispiel wird der spezifische Co...

So aktivieren Sie Flash in Windows Server 2016

Ich habe vor Kurzem VMware Horizon bereitgestellt...

Beispiel zum Erstellen eines MySQL-Clusters mit Docker

Grundlegende Anweisungen für Docker: Update-Paket...