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.