Dans MariaDB, SEC_TO_TIME()
est une fonction de date et d'heure intégrée qui renvoie une valeur d'heure, basée sur le nombre de secondes fournies comme arguments.
Syntaxe
La syntaxe ressemble à ceci :
SEC_TO_TIME(seconds)
Exemple
Voici un exemple :
SELECT SEC_TO_TIME(1);
Résultat :
+----------------+ | SEC_TO_TIME(1) | +----------------+ | 00:00:01 | +----------------+
En voici une autre :
SELECT SEC_TO_TIME(18520);
Résultat :
+--------------------+ | SEC_TO_TIME(18520) | +--------------------+ | 05:08:40 | +--------------------+
Secondes hors plage
La plage du résultat est limitée à celle du type de données de temps. Un avertissement se produit si l'argument correspond à une valeur en dehors de cette plage. La plage pour les valeurs de temps MariaDB est '-838:59:59.999999'
à '838:59:59.999999'
.
Quoi qu'il en soit, voici un exemple d'heure avec des valeurs qui se situent à l'extrémité supérieure de leur plage acceptée :
SELECT SEC_TO_TIME(3020399);
Résultat :
+----------------------+ | SEC_TO_TIME(3020399) | +----------------------+ | 838:59:59 | +----------------------+
Et en voici une qui sort de la plage :
SELECT SEC_TO_TIME(3020400);
Résultat :
+----------------------+ | SEC_TO_TIME(3020400) | +----------------------+ | 838:59:59 | +----------------------+ 1 row in set, 1 warning (0.000 sec)
Voici l'avertissement :
SHOW WARNINGS;
Résultat :
+---------+------+----------------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------------+ | Warning | 1292 | Truncated incorrect seconds value: '3020400' | +---------+------+----------------------------------------------+
Microsecondes
Nous pouvons nous rapprocher encore plus de la plage supérieure en incluant les microsecondes :
SELECT SEC_TO_TIME(3020399.999999);
Résultat :
+-----------------------------+ | SEC_TO_TIME(3020399.999999) | +-----------------------------+ | 838:59:59.999999 | +-----------------------------+
Arguments négatifs
Fournir un montant négatif entraîne une valeur de temps négative.
Exemple :
SELECT SEC_TO_TIME(-3020399);
Résultat :
+-----------------------+ | SEC_TO_TIME(-3020399) | +-----------------------+ | -838:59:59 | +-----------------------+
Argument manquant
Appel de SEC_TO_TIME()
avec le mauvais nombre d'arguments, ou sans passer d'arguments, génère une erreur :
SELECT SEC_TO_TIME();
Résultat :
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SEC_TO_TIME'
Et un autre exemple :
SELECT SEC_TO_TIME( 123, 456 );
Résultat :
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SEC_TO_TIME'
Prenez du temps
Voir aussi MAKETIME()
pour construire une valeur de temps à partir de ses heures, minutes et secondes.