Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde Mestres do mysql quem pode me ajudar.
Tenho que efetuar uma pesquisa no Mysql para trazer a temperatura minima e a máxima dentro de um período de 4 horas
Segue o exemplo abaixo:
Só que eu vou definir um horário inicial e um horário final.
Exemplo. Irei definir um horário das 13:00 até as 16:00
Logo a pesquisa teria que buscar das 13:00 até as 16:59:59
DataeHora Local Atual Min Max Umidade
30/092019 13:06:55 Geladeira1 1.70C -3.60C 11.90C 29.30%
30/092019 13:04:55 Geladeira1 1.70C -3.60C 11.90C 29.30%
30/092019 14:06:55 Geladeira1 1.70C -3.60C 11.90C 29.30%
30/092019 14:06:55 Geladeira1 1.70C -3.60C 11.90C 29.30%
30/092019 15:06:55 Geladeira1 1.70C -3.60C 11.90C 29.30%
30/092019 15:05:55 Geladeira1 1.70C -3.60C 11.90C 29.30%
30/092019 16:05:55 Geladeira1 1.70C -3.60C 11.90C 29.30%
30/092019 16:54:55 Geladeira1 1.70C -3.60C 11.90C 29.30%
Como faço essa pesquisa no Mysql.
Alguém pode me ajudar?
Não Motta. Exemplo: Vamos imaginar que eu tenho essa quantidade de registros abaixo em uma tabela chamada TERMO
DataeHora Local Atual Min Max Umidade
30/09/2019 13:06:55 Geladeira1 1.30C 1.30C 1.30C 29.30%
30/09/2019 13:04:55 Geladeira1 1.50C 1.30C 1.50C 29.30%
30/09/2019 14:06:55 Geladeira1 1.20C 1.20C 1.50C 29.30%
30/09/2019 14:07:55 Geladeira1 1.50C 1.20C 1.50C 29.30%
30/09/2019 14:08:55 Geladeira1 1.70C 1.20C 1.70C 29.30%
30/09/2019 14:09:55 Geladeira1 1.70C 1.20C 1.70C 29.30%
30/09/2019 15:06:55 Geladeira1 1.80C 1.20C 1.80C 29.30%
30/09/2019 15:07:55 Geladeira1 1.90C 1.20C 1.90C 29.30%
30/09/2019 15:08:55 Geladeira1 1.10C 1.10C 1.90C 29.30%
30/09/2019 15:09:55 Geladeira1 1.40C 1.10C 1.90C 29.30%
30/09/2019 16:05:55 Geladeira1 1.20C 1.10C 1.90C 29.30%
30/09/2019 16:06:55 Geladeira1 1.60C 1.10C 1.90C 29.30%
30/09/2019 16:07:55 Geladeira1 1.30C 1.10C 1.90C 29.30%
30/09/2019 16:54:55 Geladeira1 1.80C 1.10C 1.90C 29.30%
Eu gostaria de efetuar uma pesquisa de todos os registros dentro de 4 horas (Maior que Data Inicio: 30/09/2019 13:00:00) e
(Data Fim: 30/09/2019 16:59:59) me trazendo também o valor minimo dentro dessas 4 horas e o valor Máximo dentro dessas 4 horas. Conforme os registros acima mencionado.
Então eu gostaria que Mysql me retorna-se uma pesquisa assim conforme abaixo. Apenas esses registros abaixo:
DataeHora Local Atual Min Max Umidade
30/09/2019 13:06:55 Geladeira1 1.30C 1.10C 1.90C 29.30%
30/09/2019 13:04:55 Geladeira1 1.50C 1.10C 1.90C 23.30%
30/09/2019 14:06:55 Geladeira1 1.20C 1.10C 1.90C 24.30%
30/09/2019 14:07:55 Geladeira1 1.50C 1.10C 1.90C 27.30%
30/09/2019 14:08:55 Geladeira1 1.70C 1.10C 1.90C 28.30%
30/09/2019 14:09:55 Geladeira1 1.70C 1.10C 1.90C 21.30%
30/09/2019 15:06:55 Geladeira1 1.80C 1.10C 1.90C 23.30%
30/09/2019 15:07:55 Geladeira1 1.90C 1.10C 1.90C 25.30%
30/09/2019 15:08:55 Geladeira1 1.10C 1.10C 1.90C 22.30%
30/09/2019 15:09:55 Geladeira1 1.40C 1.10C 1.90C 24.30%
30/09/2019 16:05:55 Geladeira1 1.20C 1.10C 1.90C 29.30%
30/09/2019 16:06:55 Geladeira1 1.60C 1.10C 1.90C 22.30%
30/09/2019 16:07:55 Geladeira1 1.30C 1.10C 1.90C 27.30%
30/09/2019 16:54:55 Geladeira1 1.80C 1.10C 1.90C 20.30%
Isso é possivel?
Com funções analíticas , o que pode complicar é este intervalo de datas.
Mas seu relatório estaria errado , minha opinião , pois na hora o temperatura não foi esta .
Como ficaria isso em Mysql. Você saberia me dizer?
talvez d~e zebra por conta das colunas terem nomes reservados
select DataeHora , Local , Atual , Min , Max ,Umidade ,
min(Min) OVER() AS min_min,
max(max) OVER() AS max_max,
from tabela
where TIME(DataeHora) between '13:00:00' and '16:59:59'Esse comando
OVER() não funciona no Mysql. Se retirar funciona a pesquisa
Talvez a versão , pois copiei a syntax da documentação ( MySQL 8.0 )
Bom dia Motta.
Eu gostaria de trazer os valores repetidos na Coluna Min e Max apenas isso.
Se a pesquisa me retornar 10 registros eu gostaria de saber o minimo e máximo só que tem que trazer os 10 registros repetidos de Min e Max conforme abaixo.
DataeHora Local Atual Min Max Umidade
30/09/2019 13:06:55 Geladeira1 1.30C 1.10C 1.90C 29.30%
30/09/2019 13:04:55 Geladeira1 1.50C 1.10C 1.90C 23.30%
30/09/2019 14:06:55 Geladeira1 1.20C 1.10C 1.90C 24.30%
30/09/2019 14:07:55 Geladeira1 1.50C 1.10C 1.90C 27.30%
30/09/2019 14:08:55 Geladeira1 1.70C 1.10C 1.90C 28.30%
30/09/2019 14:09:55 Geladeira1 1.70C 1.10C 1.90C 21.30%
30/09/2019 15:06:55 Geladeira1 1.80C 1.10C 1.90C 23.30%
30/09/2019 15:07:55 Geladeira1 1.90C 1.10C 1.90C 25.30%
30/09/2019 15:08:55 Geladeira1 1.10C 1.10C 1.90C 22.30%
30/09/2019 15:09:55 Geladeira1 1.40C 1.10C 1.90C 24.30%
30/09/2019 16:05:55 Geladeira1 1.20C 1.10C 1.90C 29.30%
30/09/2019 16:06:55 Geladeira1 1.60C 1.10C 1.90C 22.30%
30/09/2019 16:07:55 Geladeira1 1.30C 1.10C 1.90C 27.30%
30/09/2019 16:54:55 Geladeira1 1.80C 1.10C 1.90C 20.30%
Existe outra forma de fazer isso. O OVER não funciona no meu Mysql. A versão do meu Mysql é a 5.5.
Fico no aguardo. Obrigado pela ajuda nos comandos acima.
Conseguir fazer dessa forma
Select DataeHora,Local,Atual,Umidade,
(SELECT Min(Atual) FROM tabela where Dataehora>='2019-09-30 13:00:00'
and Dataehora<='2019-09-30 16:59:59' and Local='CAMARAFRIA1BIO') Min,
(SELECT Max(Atual) FROM tabela where Dataehora>='2019-09-30 13:00:00'
and Dataehora<='2019-09-30 16:59:59' and Local='CAMARAFRIA1BIO') Max
from tabela where Dataehora>='2019-09-30 13:00:00'
and Dataehora<='2019-09-30 16:59:59' and Local='CAMARAFRIA1BIO';
Obrigado. Vlw pela ajuda
O Mysql tem uma function para extrair a hora de uma datetime
https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_time
Era esta a dúvida ?