MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

Comment SEC_TO_TIME() fonctionne dans MariaDB

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.