I MariaDB, FROM_UNIXTIME() er en indbygget dato- og tidsfunktion, der returnerer en dato-tidsværdi baseret på et givet unix-tidsstempel.
Du videregiver unix-tidsstemplet til funktionen, når du kalder den.
Resultatet returneres i 'YYYY-MM-DD HH:MM:SS' eller YYYYMMDDHHMMSS.uuuuuu format, afhængigt af om funktionen bruges i en streng eller numerisk kontekst.
Værdien er udtrykt i den aktuelle tidszone.
Syntaks
Funktionen kan bruges på følgende måder:
FROM_UNIXTIME(unix_timestamp)
FROM_UNIXTIME(unix_timestamp,format)
Hvor unix_timestamp er unix-tidsstemplet og format er en valgfri formatstreng til at formatere resultatet.
Eksempel
Her er et eksempel:
SELECT FROM_UNIXTIME(1721428321); Resultat:
+---------------------------+ | FROM_UNIXTIME(1721428321) | +---------------------------+ | 2024-07-20 08:32:01 | +---------------------------+
Mikrosekunder
Her er et eksempel, der inkluderer mikrosekunder:
SELECT FROM_UNIXTIME(1721428321.123456); Resultat:
+----------------------------------+ | FROM_UNIXTIME(1721428321.123456) | +----------------------------------+ | 2024-07-20 08:32:01.123456 | +----------------------------------+
Numerisk kontekst
Når du bruger FROM_UNIXTIME() i en numerisk kontekst returneres resultatet i YYYYMMDDHHMMSS.uuuuuu format:
SELECT FROM_UNIXTIME(1721428321.123456) + 0; Resultat:
+--------------------------------------+ | FROM_UNIXTIME(1721428321.123456) + 0 | +--------------------------------------+ | 20240720083201.123456 | +--------------------------------------+
Formater resultatet
Her er et eksempel på at sende en formatstreng for at formatere resultatet:
SELECT FROM_UNIXTIME(1721428321, '%W, %D %M %Y'); Resultat:
+-------------------------------------------+ | FROM_UNIXTIME(1721428321, '%W, %D %M %Y') | +-------------------------------------------+ | Saturday, 20th July 2024 | +-------------------------------------------+
Se MariaDB-datoformatstrenge for en liste over formatstrenge, der kan bruges med FROM_UNIXTIME() funktion.
Tidsstempelgrænse
Tidsstempler i MariaDB har en maksimal værdi på 2147483647 . Dette skyldes den underliggende 32-bit begrænsning. Brug af funktionen på et tidsstempel ud over dette resulterer i null bliver returneret.
Her er et eksempel, der viser denne begrænsning:
SELECT
FROM_UNIXTIME(2147483647),
FROM_UNIXTIME(2147483648); Resultat:
+---------------------------+---------------------------+ | FROM_UNIXTIME(2147483647) | FROM_UNIXTIME(2147483648) | +---------------------------+---------------------------+ | 2038-01-19 13:14:07 | NULL | +---------------------------+---------------------------+
Tidszone
Resultatet af FROM_UNIXTIME() er udtrykt i den aktuelle tidszone.
Følgende eksempler bruger det samme unix-tidsstempel med forskellige tidszoner:
SET time_zone = 'America/New_York';
SELECT FROM_UNIXTIME(2147483647); Resultat:
+---------------------------+ | FROM_UNIXTIME(2147483647) | +---------------------------+ | 2038-01-18 22:14:07 | +---------------------------+
Skift til en anden tidszone, og kør den igen:
SET time_zone = 'Africa/Abidjan';
SELECT FROM_UNIXTIME(2147483647); Resultat:
+---------------------------+ | FROM_UNIXTIME(2147483647) | +---------------------------+ | 2038-01-19 03:14:07 | +---------------------------+
Nuværende Unix-tidsstempel
Her er et eksempel, der bruger UNIX_TIMESTAMP() funktion for at returnere det aktuelle unix-tidsstempel:
SELECT
UNIX_TIMESTAMP(),
FROM_UNIXTIME(UNIX_TIMESTAMP()); Resultat:
+------------------+---------------------------------+ | UNIX_TIMESTAMP() | FROM_UNIXTIME(UNIX_TIMESTAMP()) | +------------------+---------------------------------+ | 1621734047 | 2021-05-23 11:40:47 | +------------------+---------------------------------+
Manglende argument
Kalder FROM_UNIXTIME() med det forkerte antal argumenter, eller uden at sende nogen argumenter, resulterer det i en fejl:
SELECT FROM_UNIXTIME(); Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FROM_UNIXTIME'
Og endnu et eksempel:
SELECT FROM_UNIXTIME( 1, 2, 3 ); Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FROM_UNIXTIME'