Dans MariaDB, FROM_UNIXTIME()
est une fonction de date et d'heure intégrée qui renvoie une valeur datetime basée sur un horodatage unix donné.
Vous transmettez l'horodatage unix à la fonction lorsque vous l'appelez.
Le résultat est renvoyé au format 'YYYY-MM-DD HH:MM:SS'
ou YYYYMMDDHHMMSS.uuuuuu
format, selon que la fonction est utilisée dans un contexte de chaîne ou numérique.
La valeur est exprimée dans le fuseau horaire actuel.
Syntaxe
La fonction peut être utilisée des manières suivantes :
FROM_UNIXTIME(unix_timestamp)
FROM_UNIXTIME(unix_timestamp,format)
Où unix_timestamp
est l'horodatage unix et le format
est une chaîne de format facultative pour formater le résultat.
Exemple
Voici un exemple :
SELECT FROM_UNIXTIME(1721428321);
Résultat :
+---------------------------+ | FROM_UNIXTIME(1721428321) | +---------------------------+ | 2024-07-20 08:32:01 | +---------------------------+
Microsecondes
Voici un exemple qui inclut les microsecondes :
SELECT FROM_UNIXTIME(1721428321.123456);
Résultat :
+----------------------------------+ | FROM_UNIXTIME(1721428321.123456) | +----------------------------------+ | 2024-07-20 08:32:01.123456 | +----------------------------------+
Contexte numérique
Lors de l'utilisation de FROM_UNIXTIME()
dans un contexte numérique, le résultat est renvoyé en YYYYMMDDHHMMSS.uuuuuu
format :
SELECT FROM_UNIXTIME(1721428321.123456) + 0;
Résultat :
+--------------------------------------+ | FROM_UNIXTIME(1721428321.123456) + 0 | +--------------------------------------+ | 20240720083201.123456 | +--------------------------------------+
Formater le résultat
Voici un exemple de transmission d'une chaîne de format pour formater le résultat :
SELECT FROM_UNIXTIME(1721428321, '%W, %D %M %Y');
Résultat :
+-------------------------------------------+ | FROM_UNIXTIME(1721428321, '%W, %D %M %Y') | +-------------------------------------------+ | Saturday, 20th July 2024 | +-------------------------------------------+
Voir MariaDB Date Format Strings pour une liste des chaînes de format qui peuvent être utilisées avec le FROM_UNIXTIME()
fonction.
Limite d'horodatage
Les horodatages dans MariaDB ont une valeur maximale de 2147483647
. Cela est dû à la limitation sous-jacente de 32 bits. L'utilisation de la fonction sur un horodatage au-delà de cela entraîne null
être retourné.
Voici un exemple qui illustre cette limitation :
SELECT
FROM_UNIXTIME(2147483647),
FROM_UNIXTIME(2147483648);
Résultat :
+---------------------------+---------------------------+ | FROM_UNIXTIME(2147483647) | FROM_UNIXTIME(2147483648) | +---------------------------+---------------------------+ | 2038-01-19 13:14:07 | NULL | +---------------------------+---------------------------+
Fuseau horaire
Le résultat de FROM_UNIXTIME()
est exprimé dans le fuseau horaire actuel.
Les exemples suivants utilisent le même horodatage Unix avec différents fuseaux horaires :
SET time_zone = 'America/New_York';
SELECT FROM_UNIXTIME(2147483647);
Résultat :
+---------------------------+ | FROM_UNIXTIME(2147483647) | +---------------------------+ | 2038-01-18 22:14:07 | +---------------------------+
Passez à un autre fuseau horaire et exécutez-le à nouveau :
SET time_zone = 'Africa/Abidjan';
SELECT FROM_UNIXTIME(2147483647);
Résultat :
+---------------------------+ | FROM_UNIXTIME(2147483647) | +---------------------------+ | 2038-01-19 03:14:07 | +---------------------------+
Horodatage Unix actuel
Voici un exemple qui utilise le UNIX_TIMESTAMP()
fonction pour renvoyer l'horodatage unix actuel :
SELECT
UNIX_TIMESTAMP(),
FROM_UNIXTIME(UNIX_TIMESTAMP());
Résultat :
+------------------+---------------------------------+ | UNIX_TIMESTAMP() | FROM_UNIXTIME(UNIX_TIMESTAMP()) | +------------------+---------------------------------+ | 1621734047 | 2021-05-23 11:40:47 | +------------------+---------------------------------+
Argument manquant
Appel de FROM_UNIXTIME()
avec le mauvais nombre d'arguments, ou sans passer d'arguments, génère une erreur :
SELECT FROM_UNIXTIME();
Résultat :
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FROM_UNIXTIME'
Et un autre exemple :
SELECT FROM_UNIXTIME( 1, 2, 3 );
Résultat :
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FROM_UNIXTIME'