MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

Como SEC_TO_TIME() funciona no MariaDB


No MariaDB, SEC_TO_TIME() é uma função de data e hora integrada que retorna um valor de hora, com base no número de segundos fornecidos como argumentos.

Sintaxe


A sintaxe fica assim:
SEC_TO_TIME(seconds)

Exemplo


Aqui está um exemplo:
SELECT SEC_TO_TIME(1);

Resultado:
+----------------+
| SEC_TO_TIME(1) |
+----------------+
| 00:00:01       |
+----------------+

Aqui está mais um:
SELECT SEC_TO_TIME(18520);

Resultado:
+--------------------+
| SEC_TO_TIME(18520) |
+--------------------+
| 05:08:40           |
+--------------------+

Segundos fora do alcance


O intervalo do resultado é restrito ao tipo de dados de tempo. Um aviso ocorre se o argumento corresponder a um valor fora desse intervalo. O intervalo dos valores de tempo do MariaDB é '-838:59:59.999999' para '838:59:59.999999' .

De qualquer forma, aqui está um exemplo de um tempo com valores que estão na extremidade superior de seu intervalo aceito:
SELECT SEC_TO_TIME(3020399);

Resultado:
+----------------------+
| SEC_TO_TIME(3020399) |
+----------------------+
| 838:59:59            |
+----------------------+

E aqui está um que vai fora do intervalo:
SELECT SEC_TO_TIME(3020400);

Resultado:
+----------------------+
| SEC_TO_TIME(3020400) |
+----------------------+
| 838:59:59            |
+----------------------+
1 row in set, 1 warning (0.000 sec)

Fica o aviso:
SHOW WARNINGS;

Resultado:
+---------+------+----------------------------------------------+
| Level   | Code | Message                                      |
+---------+------+----------------------------------------------+
| Warning | 1292 | Truncated incorrect seconds value: '3020400' |
+---------+------+----------------------------------------------+

Microsegundos


Podemos chegar ainda mais perto da faixa superior incluindo microssegundos:
SELECT SEC_TO_TIME(3020399.999999);

Resultado:
+-----------------------------+
| SEC_TO_TIME(3020399.999999) |
+-----------------------------+
| 838:59:59.999999            |
+-----------------------------+

Argumentos negativos


Fornecer um valor negativo resulta em um valor de tempo negativo.

Exemplo:
SELECT SEC_TO_TIME(-3020399);

Resultado:
+-----------------------+
| SEC_TO_TIME(-3020399) |
+-----------------------+
| -838:59:59            |
+-----------------------+

Argumento ausente


Chamando SEC_TO_TIME() com o número errado de argumentos, ou sem passar nenhum argumento, resulta em um erro:
SELECT SEC_TO_TIME();

Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SEC_TO_TIME'

E outro exemplo:
SELECT SEC_TO_TIME( 123, 456 );

Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SEC_TO_TIME'

Arranje um tempo


Veja também MAKETIME() para construir um valor de tempo a partir de suas horas, minutos e segundos.