In MariaDB CONVERT_TZ() ist eine integrierte Datums- und Uhrzeitfunktion, die einen datetime-Wert von einer Zeitzone in eine andere umwandelt.
Wenn Sie die Funktion aufrufen, übergeben Sie drei Argumente:die Zeit, die Zeitzone, von der konvertiert werden soll von , und die Zeitzone, die in konvertiert werden soll .
Syntax
Die Syntax sieht so aus:
CONVERT_TZ(dt,from_tz,to_tz)
Wobei dt ist der datetime-Ausdruck, from_tz ist die Zeitzone, aus der konvertiert werden soll von , und to_tz ist die Zeitzone, die in konvertiert werden soll .
Beispiel
Hier ist ein Beispiel:
SELECT CONVERT_TZ('2021-05-10 01:00:00', '+00:00', '+10:00'); Ergebnis:
Hier ist die ursprüngliche Zeitzone +00:00 und wir haben sie in +10:00 konvertiert.
Folgendes passiert, wenn wir eine andere Startzeitzone verwenden:
SELECT CONVERT_TZ('2021-05-10 01:00:00', '+03:00', '+10:00'); Ergebnis:
Benannte Zeitzonen
Benannte Zeitzonen können verwendet werden, aber dazu müssen die verschiedenen Zeitzonentabellen geladen worden sein.
Folgendes passiert, wenn die Zeitzonentabellen nicht sind ausgefüllt:
SELECT
CONVERT_TZ('2021-05-10 01:00:00', 'GMT', 'Pacific/Chatham'); Ergebnis:
Das Ergebnis ist null , da die Zeitzonentabellen keine Zeitzonendaten enthalten.
Hier ist dieselbe Abfrage noch einmal, aber diesmal mit Daten in den Zeitzonentabellen:
SELECT
CONVERT_TZ('2021-05-10 01:00:00', 'GMT', 'Pacific/Chatham'); Ergebnis:
Datetime-Werte außerhalb des zulässigen Bereichs
Es findet keine Konvertierung statt, wenn der Wert außerhalb des unterstützten TIMESTAMP liegt Bereich ('1970-01-01 00:00:01' bis '2038-01-19 05:14:07' UTC), wenn sie von from_tz nach UTC.
Beispiel:
SELECT CONVERT_TZ('2040-05-10 01:00:00', '+00:00', '+10:00'); Ergebnis:
Ungültige Argumente
Wenn eines der Argumente ungültig ist, CONVERT_TZ() gibt null zurück .
Beispiel:
SELECT CONVERT_TZ('2040-05-10 01:00:00', '+00:00', '+90:00'); Ergebnis:
In diesem Fall habe ich versucht, den datetime-Ausdruck in eine ungültige Zeitzone umzuwandeln (+90:00 ), also null wurde zurückgegeben.
Null-Argumente
Wenn irgendein Argument null ist , ist das Ergebnis null :
SELECT
CONVERT_TZ(null, '+00:00', '+90:00') AS "1",
CONVERT_TZ('2021-05-10 01:00:00', null, '+90:00') AS "2",
CONVERT_TZ('2021-05-10 01:00:00', '+00:00', null) AS "3"; Ergebnis:
+------+------+------+| 1 | 2 | 3 |+------+------+------+| NULL | NULL | NULL |+------+------+------+
Fehlendes Argument
Aufruf von CONVERT_TZ() mit der falschen Anzahl von Argumenten oder ohne Übergabe von Argumenten führt zu einem Fehler:
SELECT CONVERT_TZ(); Ergebnis:
FEHLER 1582 (42000):Falsche Parameteranzahl im Aufruf der nativen Funktion „CONVERT_TZ“