Dans MariaDB, TIME_TO_SEC() est une fonction de date et d'heure intégrée qui renvoie son argument d'heure, converti en secondes.
Syntaxe
La syntaxe ressemble à ceci :
TIME_TO_SEC(time)
Où time est la valeur de temps à convertir en secondes.
Exemple
Voici un exemple :
SELECT TIME_TO_SEC('00:01:00'); Résultat :
+-------------------------+
| TIME_TO_SEC('00:01:00') |
+-------------------------+
| 60 |
+-------------------------+ Le voici avec quelques autres valeurs de temps :
SELECT
TIME_TO_SEC('01:00:00'),
TIME_TO_SEC('15:37:46'); Résultat :
+-------------------------+-------------------------+
| TIME_TO_SEC('01:00:00') | TIME_TO_SEC('15:37:46') |
+-------------------------+-------------------------+
| 3600 | 56266 |
+-------------------------+-------------------------+ Microsecondes
TIME_TO_SEC() prend en charge les microsecondes :
SELECT TIME_TO_SEC('00:01:00.123456'); Résultat :
+--------------------------------+
| TIME_TO_SEC('00:01:00.123456') |
+--------------------------------+
| 60.123456 |
+--------------------------------+ Heures plus longues
TIME les valeurs peuvent être comprises dans la plage '-838:59:59.999999' à '838:59:59.999999' .
Par conséquent, la portion horaire peut être bien supérieure à 23 :
SELECT TIME_TO_SEC('838:59:59'); Résultat :
+--------------------------+
| TIME_TO_SEC('838:59:59') |
+--------------------------+
| 3020399 |
+--------------------------+ Valeurs de temps négatives
Voici un exemple avec une valeur de temps négative :
SELECT TIME_TO_SEC('-820:38:15'); Résultat :
+---------------------------+
| TIME_TO_SEC('-820:38:15') |
+---------------------------+
| -2954295 |
+---------------------------+ Heures hors plage
Cependant, fournir une valeur de temps en dehors de la plage renverra les secondes pour la limite supérieure de cette plage, ainsi qu'un avertissement :
SELECT TIME_TO_SEC('920:38:15'); Résultat :
+--------------------------+
| TIME_TO_SEC('920:38:15') |
+--------------------------+
| 3020399 |
+--------------------------+
1 row in set, 1 warning (0.002 sec) Vérifions l'avertissement :
SHOW WARNINGS; Résultat :
+---------+------+---------------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------------+ | Warning | 1292 | Truncated incorrect time value: '920:38:15' | +---------+------+---------------------------------------------+
Argument invalide
Lorsqu'un argument invalide est passé, TIME_TO_SEC() renvoie null avec un avertissement :
SELECT TIME_TO_SEC('Homer'); Résultat :
+----------------------+
| TIME_TO_SEC('Homer') |
+----------------------+
| NULL |
+----------------------+
1 row in set, 1 warning (0.000 sec) Vérifiez l'avertissement :
SHOW WARNINGS; Résultat :
+---------+------+-------------------------------+ | Level | Code | Message | +---------+------+-------------------------------+ | Warning | 1292 | Incorrect time value: 'Homer' | +---------+------+-------------------------------+
Argument manquant
Appel de TIME_TO_SEC() avec le mauvais nombre d'arguments, ou sans passer d'arguments, génère une erreur :
SELECT TIME_TO_SEC(); Résultat :
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TIME_TO_SEC'
Et un autre exemple :
SELECT TIME_TO_SEC('10:09:10', 2); Résultat :
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TIME_TO_SEC'