En MariaDB, SEC_TO_TIME()
es una función de fecha y hora incorporada que devuelve un valor de tiempo, basado en la cantidad de segundos proporcionados como argumentos.
Sintaxis
La sintaxis es así:
SEC_TO_TIME(seconds)
Ejemplo
He aquí un ejemplo:
SELECT SEC_TO_TIME(1);
Resultado:
+----------------+ | SEC_TO_TIME(1) | +----------------+ | 00:00:01 | +----------------+
Aquí hay otro:
SELECT SEC_TO_TIME(18520);
Resultado:
+--------------------+ | SEC_TO_TIME(18520) | +--------------------+ | 05:08:40 | +--------------------+
Segundos fuera de rango
El rango del resultado está restringido al del tipo de datos de tiempo. Se produce una advertencia si el argumento corresponde a un valor fuera de ese rango. El rango de valores de tiempo de MariaDB es '-838:59:59.999999'
a '838:59:59.999999'
.
De todos modos, aquí hay un ejemplo de una hora con valores que están en el extremo superior de su rango aceptado:
SELECT SEC_TO_TIME(3020399);
Resultado:
+----------------------+ | SEC_TO_TIME(3020399) | +----------------------+ | 838:59:59 | +----------------------+
Y aquí hay uno que se sale del rango:
SELECT SEC_TO_TIME(3020400);
Resultado:
+----------------------+ | SEC_TO_TIME(3020400) | +----------------------+ | 838:59:59 | +----------------------+ 1 row in set, 1 warning (0.000 sec)
Aquí está la advertencia:
SHOW WARNINGS;
Resultado:
+---------+------+----------------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------------+ | Warning | 1292 | Truncated incorrect seconds value: '3020400' | +---------+------+----------------------------------------------+
Microsegundos
Podemos acercarnos aún más al rango superior al incluir microsegundos:
SELECT SEC_TO_TIME(3020399.999999);
Resultado:
+-----------------------------+ | SEC_TO_TIME(3020399.999999) | +-----------------------------+ | 838:59:59.999999 | +-----------------------------+
Argumentos negativos
Proporcionar una cantidad negativa da como resultado un valor de tiempo negativo.
Ejemplo:
SELECT SEC_TO_TIME(-3020399);
Resultado:
+-----------------------+ | SEC_TO_TIME(-3020399) | +-----------------------+ | -838:59:59 | +-----------------------+
Argumento faltante
Llamando a SEC_TO_TIME()
con el número incorrecto de argumentos, o sin pasar ningún argumento, da como resultado un error:
SELECT SEC_TO_TIME();
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SEC_TO_TIME'
Y otro ejemplo:
SELECT SEC_TO_TIME( 123, 456 );
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SEC_TO_TIME'
Hágase un tiempo
Ver también MAKETIME()
para construir un valor de tiempo a partir de sus horas, minutos y segundos.