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_format
está definido comoSTATEMENT
.