Ao trabalhar com MySQL, você pode usar o
TIME() função para extrair a parte do tempo de um valor de hora ou data e hora. A maneira como funciona é, você passa a expressão time/datetime como um argumento e
TIME() retornará a parte do tempo. Sintaxe
A sintaxe fica assim:
TIME(expr)
Onde
expr é a expressão de hora/data e hora da qual você deseja que a parte de hora seja extraída. Exemplo básico
Aqui está um exemplo usando um valor de data e hora.
SELECT TIME('2021-01-03 11:15:45');
Resultado:
+-----------------------------+
| TIME('2021-01-03 11:15:45') |
+-----------------------------+
| 11:15:45 |
+-----------------------------+
Frações de Segundos
Aqui está um exemplo em que o valor datetime também contém uma parte de segundos fracionários.
SELECT TIME('2021-01-03 11:15:45.123456');
Resultado:
+------------------------------------+
| TIME('2021-01-03 11:15:45.123456') |
+------------------------------------+
| 11:15:45.123456 |
+------------------------------------+
Omitindo a parte dos segundos
Aqui está um exemplo em que a parte dos segundos é omitida do valor inicial.
SELECT TIME('2021-01-03 11:15');
Resultado:
+--------------------------+
| TIME('2021-01-03 11:15') |
+--------------------------+
| 11:15:00 |
+--------------------------+
Nesse caso, a parte dos segundos ainda é retornada, mesmo que tenha sido omitida do valor inicial.
Extrair o tempo de um valor de 'tempo'
Como mencionado, o primeiro argumento pode ser um valor de tempo em si (ou seja, não precisa ser um valor de data e hora).
SELECT TIME('11:15');
Resultado:
+---------------+
| TIME('11:15') |
+---------------+
| 11:15:00 |
+---------------+
Replicação Baseada em Instrução – Aviso
A documentação do MySQL declara o seguinte sobre o
TIME() função:
Essa função não é segura para replicação baseada em instrução. Um aviso será registrado se você usar esta função quandobinlog_formatestá definido comoSTATEMENT.