Ao usar o MySQL, você pode usar o
SEC_TO_TIME()
função para construir um tempo valor com base em um determinado número de segundos. Basicamente, você fornece o número de segundos como um argumento e ele o converterá em um tempo valor. Aqui está como funciona.
Sintaxe
A sintaxe fica assim:
SEC_TO_TIME(seconds)
Onde
seconds
é o número de segundos que você deseja converter em um tempo valor. Exemplo 1 – Uso básico
Aqui está um exemplo para demonstrar.
SELECT SEC_TO_TIME(65);
Resultado:
+-----------------+ | SEC_TO_TIME(65) | +-----------------+ | 00:01:05 | +-----------------+
Exemplo 2 – Um valor maior
Aqui está um exemplo com um valor um pouco maior.
SELECT SEC_TO_TIME(6555);
Resultado:
+-------------------+ | SEC_TO_TIME(6555) | +-------------------+ | 01:49:15 | +-------------------+
Aqui está um com um valor ainda maior novamente.
SELECT SEC_TO_TIME(655555);
Resultado:
+---------------------+ | SEC_TO_TIME(655555) | +---------------------+ | 182:05:55 | +---------------------+
Portanto, o valor do tempo não se limita a 24 horas. Isso ocorre porque não se limita a representar apenas a hora do dia. Também pode representar o tempo decorrido ou um intervalo de tempo entre dois eventos.
Exemplo 3 - Limitações no tipo de dados de tempo
A
time
tipo de dados é limitado a um intervalo de -838:59:59 para 838:59:59 . Se o resultado estiver fora desse intervalo, você receberá um aviso. SELECT SEC_TO_TIME(6555555);
Resultado:
+----------------------+ | SEC_TO_TIME(6555555) | +----------------------+ | 838:59:59 | +----------------------+ 1 row in set, 1 warning (0.00 sec)
Tenha cuidado embora. O valor de tempo mostrado pode ser enganoso, pois será interrompido em 838:59:59 mesmo que o resultado fosse maior que isso.
Aqui está outro exemplo usando um valor ainda maior novamente.
SELECT SEC_TO_TIME(65555550000);
Resultado:
+--------------------------+ | SEC_TO_TIME(65555550000) | +--------------------------+ | 838:59:59 | +--------------------------+ 1 row in set, 1 warning (0.00 sec)
Observe que obtemos o mesmo resultado do exemplo anterior, embora o argumento de segundos seja muito maior neste.
Exemplo 4 – Contexto Numérico
Aqui está um exemplo de uso de
SEC_TO_TIME()
em um contexto numérico. Fazemos isso adicionando um valor (neste caso 0
) para a declaração. SELECT SEC_TO_TIME(6555), SEC_TO_TIME(6555) + 0;
Resultado:
+-------------------+-----------------------+ | SEC_TO_TIME(6555) | SEC_TO_TIME(6555) + 0 | +-------------------+-----------------------+ | 01:49:15 | 14915 | +-------------------+-----------------------+