In MariaDB FROM_UNIXTIME()
ist eine eingebaute Datums- und Uhrzeitfunktion, die einen datetime-Wert basierend auf einem gegebenen Unix-Zeitstempel zurückgibt.
Sie übergeben den Unix-Zeitstempel an die Funktion, wenn Sie sie aufrufen.
Das Ergebnis wird in 'YYYY-MM-DD HH:MM:SS'
zurückgegeben oder YYYYMMDDHHMMSS.uuuuuu
Format, abhängig davon, ob die Funktion in einem String- oder numerischen Kontext verwendet wird.
Der Wert wird in der aktuellen Zeitzone ausgedrückt.
Syntax
Die Funktion kann auf folgende Weise verwendet werden:
FROM_UNIXTIME(unix_timestamp)
FROM_UNIXTIME(unix_timestamp,format)
Wobei unix_timestamp
ist der Unix-Zeitstempel und format
ist eine optionale Formatzeichenfolge, um das Ergebnis zu formatieren.
Beispiel
Hier ist ein Beispiel:
SELECT FROM_UNIXTIME(1721428321);
Ergebnis:
+-----------------------------------+| FROM_UNIXTIME(1721428321) |+-----------------------------------+| 2024-07-20 08:32:01 |+-----------------------------------+
Mikrosekunden
Hier ist ein Beispiel, das Mikrosekunden enthält:
SELECT FROM_UNIXTIME(1721428321.123456);
Ergebnis:
+----------------------------------------------+| FROM_UNIXTIME(1721428321.123456) |+-----------------------------------------------+| 2024-07-20 08:32:01.123456 |+----------------------------------------------+
Numerischer Kontext
Bei Verwendung von FROM_UNIXTIME()
in einem numerischen Kontext wird das Ergebnis in YYYYMMDDHHMMSS.uuuuuu
zurückgegeben Format:
SELECT FROM_UNIXTIME(1721428321.123456) + 0;
Ergebnis:
Formatieren Sie das Ergebnis
Hier ist ein Beispiel für die Übergabe einer Formatzeichenfolge zur Formatierung des Ergebnisses:
SELECT FROM_UNIXTIME(1721428321, '%W, %D %M %Y');
Ergebnis:
+--------------------------------------------------+| FROM_UNIXTIME(1721428321, '%W, %D %M %Y') |+------------------------------- -----------+| Samstag, 20. Juli 2024 |+--------------------------------------------------- +
Siehe MariaDB Date Format Strings für eine Liste von Formatstrings, die mit FROM_UNIXTIME()
verwendet werden können Funktion.
Zeitstempellimit
Zeitstempel in MariaDB haben einen maximalen Wert von 2147483647
. Dies liegt an der zugrunde liegenden 32-Bit-Beschränkung. Die Verwendung der Funktion für einen darüber hinausgehenden Zeitstempel führt zu null
zurückgegeben.
Hier ist ein Beispiel, das diese Einschränkung demonstriert:
SELECT
FROM_UNIXTIME(2147483647),
FROM_UNIXTIME(2147483648);
Ergebnis:
+----------------------+----------------- ---------+| FROM_UNIXTIME(2147483647) | FROM_UNIXTIME(2147483648) |+-----------------------------------+--------------- -----------+| 2038-01-19 13:14:07 | NULL |+--------------------------+------------------ --------+
Zeitzone
Das Ergebnis von FROM_UNIXTIME()
wird in der aktuellen Zeitzone ausgedrückt.
Die folgenden Beispiele verwenden denselben Unix-Zeitstempel mit unterschiedlichen Zeitzonen:
SET time_zone = 'America/New_York';
SELECT FROM_UNIXTIME(2147483647);
Ergebnis:
+-----------------------------------+| FROM_UNIXTIME(2147483647) |+-----------------------------------+| 2038-01-18 22:14:07 |+----------------------+
Wechseln Sie zu einer anderen Zeitzone und führen Sie sie erneut aus:
SET time_zone = 'Africa/Abidjan';
SELECT FROM_UNIXTIME(2147483647);
Ergebnis:
+-----------------------------------+| FROM_UNIXTIME(2147483647) |+-----------------------------------+| 2038-01-19 03:14:07 |+-----------------------------------+
Aktueller Unix-Zeitstempel
Hier ist ein Beispiel, das UNIX_TIMESTAMP()
verwendet Funktion, um den aktuellen Unix-Zeitstempel zurückzugeben:
SELECT
UNIX_TIMESTAMP(),
FROM_UNIXTIME(UNIX_TIMESTAMP());
Ergebnis:
+-------------+------------------ ------+| UNIX_TIMESTAMP() | FROM_UNIXTIME(UNIX_TIMESTAMP()) |+------------------+----------------------- ----------+| 1621734047 | 2021-05-23 11:40:47 |+-----------------+------------------ --------------+
Fehlendes Argument
Aufruf von FROM_UNIXTIME()
mit der falschen Anzahl von Argumenten oder ohne Übergabe von Argumenten führt zu einem Fehler:
SELECT FROM_UNIXTIME();
Ergebnis:
FEHLER 1582 (42000):Falsche Parameteranzahl im Aufruf der nativen Funktion 'FROM_UNIXTIME'
Und noch ein Beispiel:
SELECT FROM_UNIXTIME( 1, 2, 3 );
Ergebnis:
FEHLER 1582 (42000):Falsche Parameteranzahl im Aufruf der nativen Funktion 'FROM_UNIXTIME'