Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

SQL Para média de horario

Boa tarde, consegui no excel mas ainda nao consegui organizar uma query que resolvesse meu problema ... imagine que eu tenho uma tabela com registros de um horários ... Preciso da media entre elas ... 1 - 12:00:00 2 - 13:22:00 3 - 12:33:00

Média: 12:38:20 , alguem sabe como chegar a esse resultado atraves de uma query ?

1 resposta

Você precisaria converter o horário em segundos, fazer a média e depois converter o resultado em horário para exibição.

Supondo que o seu campo seja TIME, ou seja, guarde apenas o horário, a sua consulta ficaria assim:

SELECT SEC_TO_TIME(AVG(TIME_TO_SEC(meu_campo_time))) as media FROM minha_tabela

Se o campo for data e hora, o processo fica um pouco mais complicado, teria que separar o horário da data e fazer a operação:

SELECT SEC_TO_TIME(AVG(TIME_TO_SEC(DATE_FORMAT(meu_campo_dataehora,'%H:%i:%s')))) as media FROM minha_tabela 

Os exemplos acima são para o MySQL.

Para o SQL Server, a lógica é a mesma, mas os comandos são diferentes

Para separar a hora da data de um campo datetime

select  CAST(meu_campo_dataehora AS TIME) from minha_tabela

Para calcular a media do campo:

SELECT CONVERT(varchar, DATEADD(ms, AVG(DATEDIFF(MINUTE,0,CAST(meu_campo_dataehora AS TIME))) * 1000, 0), 114) from minha_tabela