MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Wie FROM_UNIXTIME() in MariaDB funktioniert

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:

+--------------------------------------+| FROM_UNIXTIME(1721428321.123456) + 0 |+--------------------------------------+| 20240720083201.123456 |+--------------------------------------+

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'