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'