Looking for mysql Keywords? Try Ask4Keywords

MySQLUmgang mit Zeitzonen


Bemerkungen

Wenn Sie Zeitinformationen für eine weltweite Benutzerbasis in MySQL verarbeiten müssen, verwenden Sie den TIMESTAMP-Datentyp in Ihren Tabellen.

Speichern Sie für jeden Benutzer eine Timezone-Spalte mit Benutzereinstellungen. VARCHAR (64) ist ein guter Datentyp für diese Spalte. Wenn sich ein Benutzer registriert, um Ihr System zu verwenden, fragen Sie nach dem Zeitzonenwert. Mein ist Atlantic Time, America/Edmonton . Ihr könnte Asia/Kolkata oder Australia/NSW sein oder nicht. Für eine Benutzeroberfläche für diese Benutzereinstellung bietet die WordPress.org-Software ein gutes Beispiel.

Wann immer Sie eine Verbindung von Ihrem Host-Programm (Java, PHP, was auch immer) zu Ihrem DBMS für einen Benutzer herstellen, geben Sie den SQL-Befehl aus

 SET SESSION time_zone='(whatever tz string the user gave you)'

bevor Sie mit Benutzerdaten umgehen, die zeitaufwendig sind. Dann werden alle TIMESTAMP Zeiten, die Sie installiert haben, in der Ortszeit des Benutzers TIMESTAMP .

Dies führt dazu, dass alle Zeitangaben in Ihren Tabellen in UTC konvertiert werden und alle Zeitangaben in lokal übersetzt werden. Es funktioniert einwandfrei für JETZT () und CURDATE (). Auch hier müssen Sie die Datentypen TIMESTAMP und nicht DATETIME oder DATE verwenden.

Stellen Sie sicher, dass das Server-Betriebssystem und die Standard-MySQL-Zeitzonen auf UTC eingestellt sind. Wenn Sie dies nicht tun, bevor Sie mit dem Laden von Informationen in Ihre Datenbank beginnen, ist es fast unmöglich, das Problem zu beheben. Wenn Sie einen Anbieter zum Ausführen von MySQL verwenden, bestehen Sie darauf, dass diese das Recht haben.

Umgang mit Zeitzonen Verwandte Beispiele