Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Exemplos SEC_TO_TIME() – MySQL


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 |
+-------------------+-----------------------+