No MariaDB,
TIME_TO_SEC() é uma função interna de data e hora que retorna seu argumento de tempo, convertido em segundos. Sintaxe
A sintaxe fica assim:
TIME_TO_SEC(time) Onde
time é o valor de tempo a ser convertido em segundos. Exemplo
Aqui está um exemplo:
SELECT TIME_TO_SEC('00:01:00'); Resultado:
+-------------------------+
| TIME_TO_SEC('00:01:00') |
+-------------------------+
| 60 |
+-------------------------+ Aqui está com alguns outros valores de tempo:
SELECT
TIME_TO_SEC('01:00:00'),
TIME_TO_SEC('15:37:46'); Resultado:
+-------------------------+-------------------------+
| TIME_TO_SEC('01:00:00') | TIME_TO_SEC('15:37:46') |
+-------------------------+-------------------------+
| 3600 | 56266 |
+-------------------------+-------------------------+ Microsegundos
TIME_TO_SEC() suporta microssegundos:SELECT TIME_TO_SEC('00:01:00.123456'); Resultado:
+--------------------------------+
| TIME_TO_SEC('00:01:00.123456') |
+--------------------------------+
| 60.123456 |
+--------------------------------+ Horários maiores
TIME os valores podem estar no intervalo '-838:59:59.999999' para '838:59:59.999999' . Portanto, a parte da hora pode ser muito maior que
23 :SELECT TIME_TO_SEC('838:59:59'); Resultado:
+--------------------------+
| TIME_TO_SEC('838:59:59') |
+--------------------------+
| 3020399 |
+--------------------------+ Valores de tempo negativos
Aqui está um exemplo com um valor de tempo negativo:
SELECT TIME_TO_SEC('-820:38:15'); Resultado:
+---------------------------+
| TIME_TO_SEC('-820:38:15') |
+---------------------------+
| -2954295 |
+---------------------------+ Horários fora do intervalo
No entanto, fornecer um valor de tempo fora do intervalo retornará os segundos para o limite superior desse intervalo, juntamente com um aviso:
SELECT TIME_TO_SEC('920:38:15'); Resultado:
+--------------------------+
| TIME_TO_SEC('920:38:15') |
+--------------------------+
| 3020399 |
+--------------------------+
1 row in set, 1 warning (0.002 sec) Vamos verificar o aviso:
SHOW WARNINGS; Resultado:
+---------+------+---------------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------------+ | Warning | 1292 | Truncated incorrect time value: '920:38:15' | +---------+------+---------------------------------------------+
Argumento inválido
Ao passar qualquer argumento inválido,
TIME_TO_SEC() retorna null com um aviso:SELECT TIME_TO_SEC('Homer'); Resultado:
+----------------------+
| TIME_TO_SEC('Homer') |
+----------------------+
| NULL |
+----------------------+
1 row in set, 1 warning (0.000 sec) Confira o aviso:
SHOW WARNINGS; Resultado:
+---------+------+-------------------------------+ | Level | Code | Message | +---------+------+-------------------------------+ | Warning | 1292 | Incorrect time value: 'Homer' | +---------+------+-------------------------------+
Argumento ausente
Chamando
TIME_TO_SEC() com o número errado de argumentos, ou sem passar nenhum argumento, resulta em um erro:SELECT TIME_TO_SEC(); Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TIME_TO_SEC'
E outro exemplo:
SELECT TIME_TO_SEC('10:09:10', 2); Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TIME_TO_SEC'