En MariaDB, TIME_TO_SEC()
es una función de fecha y hora incorporada que devuelve su argumento de tiempo, convertido a segundos.
Sintaxis
La sintaxis es así:
TIME_TO_SEC(time)
Donde time
es el valor de tiempo que se convertirá a segundos.
Ejemplo
He aquí un ejemplo:
SELECT TIME_TO_SEC('00:01:00');
Resultado:
+-------------------------+ | TIME_TO_SEC('00:01:00') | +-------------------------+ | 60 | +-------------------------+
Aquí está con un par de otros valores de tiempo:
SELECT
TIME_TO_SEC('01:00:00'),
TIME_TO_SEC('15:37:46');
Resultado:
+-------------------------+-------------------------+ | TIME_TO_SEC('01:00:00') | TIME_TO_SEC('15:37:46') | +-------------------------+-------------------------+ | 3600 | 56266 | +-------------------------+-------------------------+
Microsegundos
TIME_TO_SEC()
admite microsegundos:
SELECT TIME_TO_SEC('00:01:00.123456');
Resultado:
+--------------------------------+ | TIME_TO_SEC('00:01:00.123456') | +--------------------------------+ | 60.123456 | +--------------------------------+
Horarios más amplios
TIME
los valores pueden estar en el rango '-838:59:59.999999'
a '838:59:59.999999'
.
Por lo tanto, la parte de la hora puede ser mucho mayor que 23
:
SELECT TIME_TO_SEC('838:59:59');
Resultado:
+--------------------------+ | TIME_TO_SEC('838:59:59') | +--------------------------+ | 3020399 | +--------------------------+
Valores de tiempo negativos
Aquí hay un ejemplo con un valor de tiempo negativo:
SELECT TIME_TO_SEC('-820:38:15');
Resultado:
+---------------------------+ | TIME_TO_SEC('-820:38:15') | +---------------------------+ | -2954295 | +---------------------------+
Tiempos fuera de rango
Sin embargo, proporcionar un valor de tiempo fuera del rango devolverá los segundos para el límite superior de ese rango, junto con una advertencia:
SELECT TIME_TO_SEC('920:38:15');
Resultado:
+--------------------------+ | TIME_TO_SEC('920:38:15') | +--------------------------+ | 3020399 | +--------------------------+ 1 row in set, 1 warning (0.002 sec)
Revisemos la advertencia:
SHOW WARNINGS;
Resultado:
+---------+------+---------------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------------+ | Warning | 1292 | Truncated incorrect time value: '920:38:15' | +---------+------+---------------------------------------------+
Argumento no válido
Cuando se pasan argumentos no válidos, TIME_TO_SEC()
devuelve null
con una advertencia:
SELECT TIME_TO_SEC('Homer');
Resultado:
+----------------------+ | TIME_TO_SEC('Homer') | +----------------------+ | NULL | +----------------------+ 1 row in set, 1 warning (0.000 sec)
Compruebe la advertencia:
SHOW WARNINGS;
Resultado:
+---------+------+-------------------------------+ | Level | Code | Message | +---------+------+-------------------------------+ | Warning | 1292 | Incorrect time value: 'Homer' | +---------+------+-------------------------------+
Argumento faltante
Llamando a TIME_TO_SEC()
con el número incorrecto de argumentos, o sin pasar ningún argumento, da como resultado un error:
SELECT TIME_TO_SEC();
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TIME_TO_SEC'
Y otro ejemplo:
SELECT TIME_TO_SEC('10:09:10', 2);
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TIME_TO_SEC'