No MariaDB,
TIME_FORMAT() é uma função de data e hora integrada que formata um valor de hora de acordo com a string de formato fornecida. Funciona de forma semelhante ao
DATE_FORMAT() função, exceto que a string de formato só pode conter especificadores de formato para horas, minutos e segundos. Requer dois argumentos; a hora e a string de formato.
Sintaxe
A sintaxe fica assim:
TIME_FORMAT(time,format) Onde
time é o valor de tempo e format é a cadeia de formato. Consulte Strings de formato MariaDB para obter uma lista de especificadores de formato aceitáveis. Conforme mencionado, apenas os especificadores de formato para horas, minutos e segundos são aceitos. Todos os outros valores retornam null . Exemplo
Aqui está um exemplo:
SELECT TIME_FORMAT('10:30:45', '%H %i %S'); Resultado:
+-------------------------------------+| TIME_FORMAT('10:30:45', '%H %i %S') |+----------------------------- --------+| 10 30 45 |+------------------------------------------------+ Aqui está novamente, mas desta vez fornecemos uma string de formato mais elaborada:
SELECT TIME_FORMAT(
'10:30:45',
'%H hours, %i minutes, and %S seconds'
)
AS Result; Resultado:
+--------------------------------------+| Resultado |+-------------------------------------------------+| 10 horas, 30 minutos e 45 segundos |+-------------------------------------------------+
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_FORMAT(
'810:30:45',
'%H hours, %i minutes, and %S seconds'
)
AS Result; Resultado:
+---------------------------------------+| Resultado |+---------------------------------------+| 810 horas, 30 minutos e 45 segundos |+-------------------------------------------------- +
Valores de tempo negativos
Aqui está um exemplo com um valor de tempo negativo:
SELECT TIME_FORMAT(
'-810:30:45',
'%H hours, %i minutes, and %S seconds'
)
AS Result; Resultado:
+----------------------------------------+| Resultado |+----------------------------------------+| -810 horas, 30 minutos e 45 segundos |+------------------------------------------------- --+
Horários fora do intervalo
No entanto, fornecer um valor de tempo fora do intervalo retornará o limite superior desse intervalo, juntamente com um aviso:
SELECT TIME_FORMAT(
'910:30:45',
'%H hours, %i minutes, and %S seconds'
)
AS Result; Resultado:
+---------------------------------------+| Resultado |+---------------------------------------+| 838 horas, 59 minutos e 59 segundos |+-------------------------------------------------- +1 linha no conjunto, 1 aviso (0,003 seg)
Vamos verificar o aviso:
SHOW WARNINGS; Resultado:
+---------+------+----------------------------- ----------------+| Nível | Código | Mensagem |+---------+------+------------------- ---------------+| Aviso | 1292 | Valor de tempo incorreto truncado:'910:30:45' |+---------+------+------------------- ---------------+
Argumentos inválidos
Ao passar qualquer argumento inválido,
TIME_FORMAT() retorna null com um aviso:SELECT TIME_FORMAT('Homer', 'Simpson'); Resultado:
+---------------------------------+| TIME_FORMAT('Homer', 'Simpson') |+---------------------------------+| NULL |+---------------------------------+1 linha no conjunto, 1 aviso (0,009 seg)
Confira o aviso:
SHOW WARNINGS;
Resultado:
+---------+------+----------------------------- --+| Nível | Código | Mensagem |+---------+------+------------------- -+| Aviso | 1292 | Valor de tempo incorreto:'Homer' |+---------+------+------------------------ -------+
String de formato inválido
A string de formato só pode conter especificadores de formato para horas, minutos e segundos. Qualquer outro especificador de formato resulta em null sendo devolvido:
SELECT TIME_FORMAT('10:30:45', '%M %W');
Resultado:
+----------------------------------+| TIME_FORMAT('10:30:45', '%M %W') |+------------------------------------------ ---+| NULL |+----------------------------------+ Argumento ausente
Chamando TIME_FORMAT() com o número errado de argumentos, ou sem passar nenhum argumento, resulta em um erro:
SELECT TIME_FORMAT();
Resultado:
ERRO 1582 (42000):contagem de parâmetro incorreta na chamada para a função nativa 'TIME_FORMAT'
E outro exemplo:
SELECT TIME_FORMAT('10:09:10');
Resultado:
ERRO 1582 (42000):contagem de parâmetro incorreta na chamada para a função nativa 'TIME_FORMAT'