sql >> Base de Datos >  >> RDS >> MariaDB

Cómo funciona SEC_TO_TIME() en MariaDB

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''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.