Ich habe ein seltsames Problem in Bezug auf die Zeitzone von mysql.
In meiner Website-Konfigurationsdatei habe ich diese Zeile, die die Zeitzone festlegt:
%Vor%Der lustige Teil ist, dass wenn ich direkt danach eine weitere Zeile hinzufüge:
%Vor%Nach der Ausführung dieses Codes wird die Uhrzeit korrekt angezeigt.
ABER, in einigen anderen Abfragen füge ich Zeilen in Tabellen ein, die eine Spalte namens date haben, die standardmäßig auf CURRENT_TIMESTAMP steht.
Zeilen werden wie folgt eingefügt:
%Vor% (Die Sitzungstabelle hat eine date
-Spalte, die standardmäßig auf CURRENT_TIMESTAMP gesetzt ist)
Aber der in DB eingefügte Wert verweist immer noch auf die Zeitzone des Servers: ((
Irgendwelche Ideen, wie man das durcharbeitet?
Sie müssen verstehen, dass MySQL mehrere Zeitzoneneinstellungen enthält:
Weitere Informationen finden Sie Ссылка .
Datum / Uhrzeit-Werte werden auf zwei verschiedene Arten gespeichert:
Aus dem Obigen sollte klar werden, dass die Werte, die Sie sehen, wenn Sie aus Unix-Timestamp-basierten Spalten lesen, nicht unbedingt das sind, was wirklich in der DB gespeichert ist. Sie werden mithilfe der Server-Zeitzone und der Client-Zeitzone konvertiert. Das Ergebnis kann verwirrend sein, wenn Sie die Details der Mechanik nicht verstehen.
Versuchen Sie bei einem ersten Test, die aktuellen Einstellungen in jedem Ihrer Client-Programme durch Ausführen von
herauszufinden %Vor%Die globale Zeitzone wird immer gleich sein. Die Sitzungszeitzone kann jedoch von Clientanwendung zu Clientanwendung abweichen und die Ergebnisse Ihrer Lese- und Schreibvorgänge ändern.