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“