In MariaDB, FROM_UNIXTIME()
is een ingebouwde datum- en tijdfunctie die een datetime-waarde retourneert op basis van een gegeven Unix-tijdstempel.
U geeft de Unix-tijdstempel door aan de functie wanneer u deze aanroept.
Het resultaat wordt geretourneerd in 'YYYY-MM-DD HH:MM:SS'
of YYYYMMDDHHMMSS.uuuuuu
formaat, afhankelijk van of de functie in een tekenreeks of in een numerieke context wordt gebruikt.
De waarde wordt uitgedrukt in de huidige tijdzone.
Syntaxis
De functie kan op de volgende manieren worden gebruikt:
FROM_UNIXTIME(unix_timestamp)
FROM_UNIXTIME(unix_timestamp,format)
Waar unix_timestamp
is de Unix-tijdstempel, en format
is een optionele opmaakreeks om het resultaat op te maken.
Voorbeeld
Hier is een voorbeeld:
SELECT FROM_UNIXTIME(1721428321);
Resultaat:
+---------------------------+ | FROM_UNIXTIME(1721428321) | +---------------------------+ | 2024-07-20 08:32:01 | +---------------------------+
Microseconden
Hier is een voorbeeld met microseconden:
SELECT FROM_UNIXTIME(1721428321.123456);
Resultaat:
+----------------------------------+ | FROM_UNIXTIME(1721428321.123456) | +----------------------------------+ | 2024-07-20 08:32:01.123456 | +----------------------------------+
Numerieke context
Bij gebruik van FROM_UNIXTIME()
in een numerieke context wordt het resultaat geretourneerd in YYYYMMDDHHMMSS.uuuuuu
formaat:
SELECT FROM_UNIXTIME(1721428321.123456) + 0;
Resultaat:
+--------------------------------------+ | FROM_UNIXTIME(1721428321.123456) + 0 | +--------------------------------------+ | 20240720083201.123456 | +--------------------------------------+
Maak het resultaat op
Hier is een voorbeeld van het doorgeven van een format string om het resultaat op te maken:
SELECT FROM_UNIXTIME(1721428321, '%W, %D %M %Y');
Resultaat:
+-------------------------------------------+ | FROM_UNIXTIME(1721428321, '%W, %D %M %Y') | +-------------------------------------------+ | Saturday, 20th July 2024 | +-------------------------------------------+
Zie MariaDB Date Format Strings voor een lijst met format strings die kunnen worden gebruikt met de FROM_UNIXTIME()
functie.
Tijdstempellimiet
Tijdstempels in MariaDB hebben een maximale waarde van 2147483647
. Dit komt door de onderliggende 32-bits beperking. Het gebruik van de functie op een tijdstempel buiten dit resulteert in null
wordt geretourneerd.
Hier is een voorbeeld dat deze beperking aantoont:
SELECT
FROM_UNIXTIME(2147483647),
FROM_UNIXTIME(2147483648);
Resultaat:
+---------------------------+---------------------------+ | FROM_UNIXTIME(2147483647) | FROM_UNIXTIME(2147483648) | +---------------------------+---------------------------+ | 2038-01-19 13:14:07 | NULL | +---------------------------+---------------------------+
Tijdzone
Het resultaat van FROM_UNIXTIME()
wordt uitgedrukt in de huidige tijdzone.
De volgende voorbeelden gebruiken dezelfde Unix-tijdstempel met verschillende tijdzones:
SET time_zone = 'America/New_York';
SELECT FROM_UNIXTIME(2147483647);
Resultaat:
+---------------------------+ | FROM_UNIXTIME(2147483647) | +---------------------------+ | 2038-01-18 22:14:07 | +---------------------------+
Schakel over naar een andere tijdzone en voer het opnieuw uit:
SET time_zone = 'Africa/Abidjan';
SELECT FROM_UNIXTIME(2147483647);
Resultaat:
+---------------------------+ | FROM_UNIXTIME(2147483647) | +---------------------------+ | 2038-01-19 03:14:07 | +---------------------------+
Huidige Unix-tijdstempel
Hier is een voorbeeld dat de UNIX_TIMESTAMP()
. gebruikt functie om de huidige Unix-tijdstempel te retourneren:
SELECT
UNIX_TIMESTAMP(),
FROM_UNIXTIME(UNIX_TIMESTAMP());
Resultaat:
+------------------+---------------------------------+ | UNIX_TIMESTAMP() | FROM_UNIXTIME(UNIX_TIMESTAMP()) | +------------------+---------------------------------+ | 1621734047 | 2021-05-23 11:40:47 | +------------------+---------------------------------+
Ontbrekend argument
Bellen FROM_UNIXTIME()
met het verkeerde aantal argumenten, of zonder het doorgeven van argumenten, resulteert in een fout:
SELECT FROM_UNIXTIME();
Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FROM_UNIXTIME'
En nog een voorbeeld:
SELECT FROM_UNIXTIME( 1, 2, 3 );
Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FROM_UNIXTIME'