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

JavaScript zum Erzielen eines Akkordeoneffekts

In diesem Artikel wird der spezifische Code für J...

Wann sollte man Map anstelle einfacher JS-Objekte verwenden?

Inhaltsverzeichnis 1. Map akzeptiert jeden Schlüs...

So importieren Sie eine JS-Konfigurationsdatei auf den Vue-Server

Inhaltsverzeichnis Hintergrund erreichen Ergänzun...

Detaillierte Erklärung der Javascript-Grundlagenschleife

Inhaltsverzeichnis Zyklus für für-in für-von währ...

So aktualisieren Sie v-for in Vue

Tipps: Die Methode zur Array-Änderung führt zur A...

Detaillierte Einführung in den MySQL Innodb Index-Mechanismus

1. Was ist ein Index? Ein Index ist eine Datenstr...

N Möglichkeiten, adaptive Teiler geschickt mit CSS zu implementieren

Trennlinien sind eine gängige Gestaltungsart auf ...

Lernprogramm zur Verwendung des WeChat-Applets WXS

Was ist wxs? wxs (WeiXin Script) ist eine Skripts...

Native JS-Drag-and-Drop-Funktion zum Erstellen eines Slider-Beispielcodes

Drag & Drop ist eine gängige Funktion im Fron...

Aufrufen von Baidu Map zum Abrufen von Längen- und Breitengrad in Vue

Im Projekt ist es erforderlich, den Breiten- und ...