In diesem Artikel werde ich Ihnen zeigen, wie Sie Zeitzonendatenbanken auf MySQL und MariADB -Datenbankserver installieren und sie verwenden. Ich habe die in diesem Artikel zu Centos 8 und Ubuntu 18 gezeigten Schritte getestet.04 LTS. Aber es sollte auf CentOS/Rhel 7+, Ubuntu 18 funktionieren.04+ und Debian 10+. Also lasst uns anfangen.
Voraussetzungen:
Sie müssen MySQL oder Mariadb auf Ihrem Linux -Betriebssystem installieren lassen (ich.e. Centos/Rhel, Ubuntu/Debian). Wenn Sie Unterstützung bei der Installation von MySQL/MariadB benötigen, gibt es viele Artikel unter LinuxHint.com, was Sie überprüfen können.
Installieren von Zeitzonendaten auf CentOS/Rhel:
In CentOS/rhel die Tzdata Paket bietet Zeitzoneninformationen. Der Tzdata Das Paket sollte standardmäßig installiert werden.
Wenn es auf jeden Fall nicht installiert ist, können Sie es mit den folgenden Befehlen installieren:
$ sudo dnf makecache
$ sudo dnf installt Tzdata
NOTIZ: Bei CentOS/RHEL 7 verwenden Sie Yum anstatt DNF.
Installieren von Zeitzonendaten auf Ubuntu/Debian:
In Ubuntu/Debian die Tzdata Paket bietet Zeitzoneninformationen. Der Tzdata Das Paket sollte standardmäßig installiert werden.
Wenn es auf jeden Fall nicht installiert ist, können Sie es mit den folgenden Befehlen installieren:
$ sudo APT Update
$ sudo apt installieren Sie Tzdata
Konvertieren von Zeitzonendaten in SQL:
Die Zeitzonendaten sollten in der sein /usr/share/zoneInfo/ Verzeichnis von CentOS/Rhel und Ubuntu/Debian OS.
$ ls/usr/share/zoneInfo/
Wie Sie sehen können, sind die Zeitzonendaten in verschiedenen Ordnern gut angeordnet.
Die Zeitzonendatendateien sind binär. Sie können sie nicht direkt mit MySQL/Mariadb -Datenbanken verwenden.
$ cat/usr/share/zoneInfo/Amerika/Toronto
Sie müssen die binären Zeitzonendaten (aus dem konvertieren /usr/share/zoneInfo/ Verzeichnis) zu SQL mit dem mysql_tzinfo_to_sql Programm.
Um die Zeitzonendaten in SQL zu konvertieren, laufen Sie mysql_tzinfo_to_sql folgendermaßen:
$ mysql_tzinfo_to_sql/usr/share/zoneInfo/> ~/zoneInfo.sqlEine neue Datei zoneInfo.sql sollte in Ihrem Heimverzeichnis erstellt werden. Sie können die Zeitzoneninformationen aus dieser Datei in Ihre MySQL/MariADB -Datenbank importieren.
Zeitzonendaten in MySQL/Mariadb importieren:
Sie können die Zeitzoneninformationen aus dem importieren zoneInfo.sql Datei in die Mysql Datenbank wie folgt:
$ cat ~/zoneInfo.sql | sudo mysql -u root mysql -pGeben Sie nun Ihr MySQL/MariADB -Datenbank -Root -Passwort ein und drücken Sie . Die Zeitzoneninformationen sollten importiert werden.
Einstellung der Standard-/globalen Zeitzone in MySQL/Mariadb:
Standardmäßig ist die Standard-/globale Zeitzone von MySQL/MariadB auf die Betriebssystemzone eingestellt. Sie können eine andere Standard-/globale Zeitzone festlegen, wenn Sie möchten.
> Wählen Sie @@ time_zone;Zuerst müssen Sie den Zeitzonennamen finden, den Sie festlegen möchten. Sie finden alle verfügbaren Zeitzonennamen mit der folgenden SQL -Anweisung:
> Wählen Sie den Namen von MySQL aus.TIME_ZONE_NAME;Sie können auch wie folgt nach Ihrem gewünschten Zeitzonennamen suchen:
> Wählen Sie den Namen von MySQL aus.TIME_ZONE_NAME, wobei der Name '%%';Jetzt können Sie Ihre gewünschte Zeitzone als Standard-/globaler Zeitzone wie folgt festlegen:
> Global time_zone = "" setzen;Ihre gewünschte Zeitzone sollte als Standard-/globaler Zeitzone festgelegt werden.
> Wählen Sie @@ time_zone;Der Convert_tz () Funktion wird verwendet, um die Zeitzone einer DateTime in MySQL/Mariadb umzuwandeln.
Die Syntax der Convert_tz () Funktion ist:
Convert_tz (DateTime, von_tz, to_tz)Hier, von_tz Und to_tz kann ein Zeitzonenname sein (ich.e. Asien/Dhaka, Amerika/New_york) oder Zeitzone -Offset (i.e. +06:00, -02: 00).
Der Terminzeit wird von von_tz Zu to_tz Zeitzone.
Sie können den aktuellen Zeitstempel (aktuelles Datum und Uhrzeit) Ihres Computers mit der folgenden SQL -Anweisung ausdrucken:
> Wählen Sie current_timestamp ();Nehmen wir nun an, Sie möchten die Zeitzone des aktuellen Datums und der Uhrzeit Ihres Computers in die Zeit konvertieren Europa/London. Um das zu tun, können Sie die ausführen Convert_tz () Funktion wie folgt:
> Wählen Sie current_timestamp () als dt_dhaka, convert_tz (current_timestamp (),Wie Sie sehen können, wird die Zeitzone der aktuellen DateTime in konvertiert Europa/London erfolgreich.
Sie können auch die Zeitzone mit spezifischem DateTime wie folgt konvertieren:
> Set @dt = '2001-01-03 11:02:11';Sie können auch die Zeitzone der DateTime -Felder einer Tabelle konvertieren. Zur Demonstration werde ich in diesem Artikel einen einfachen Geburtstagstisch verwenden.
Erstellen Sie zunächst a Geburtstag Tabelle wie folgt:
> Tabelle Geburtstag erstellen (Name Varchar (20) NICHT NULL,Der Geburtstag Tabelle hat nur 2 Felder, Name Und birth_timestamp Wie Sie im Screenshot unten sehen können.
> Geburtstag beschreiben;Fügen Sie nun einige Dummy -Geburtstagsdaten in die Geburtstag Tabelle wie folgt:
> In Geburtstagswerte einfügen ('Bob', '1997-10-11 12:11:11'),Hier sind die Dummy -Geburtstagsdaten.
> Wählen Sie * vom Geburtstag;Jetzt können Sie die Zeitzone aller Geburtstagszeitstempel umwandeln Europa/London folgendermaßen:
> Wählen Sie den Namen, Birth_Timestamp, convert_tz (Birgd_timestamp, @@ time_zone,Wie Sie sehen können, werden die Geburtstagszeitzonen richtig konvertiert.
So arbeiten Sie im Grunde genommen mit MySQL/Mariadb -Zeitzonen zusammen. Danke, dass du diesen Artikel gelesen hast.