MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

Como TIME_FORMAT() funciona no MariaDB


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'