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'