fjdoliveira
(usa Linux Mint)
Enviado em 01/11/2019 - 15:00h
O campo já é do tipo "datetime" e ele já está salvando no banco de dados corretamente. O registro é atualizado no banco de dados a cada 30 segundos e, às vezes, ele até demora 1 ou 2 segundos a mais para salvar. O que eu desejo é que no gráfico apareçam apenas os dados que tenham o intervalo selecionado pelo usuário. Além do período (data e hora) do relatório (Que fiz o filtro usando o BETWEEN), existe um campo do tipo "select" e outro do tipo "text" que serve para selecionar o intervalo de tempo de amostragem dos dados no gráfico. Por exemplo, se o usuário digitar "1" e escolher a opção "hora", o gráfico exibirá apenas os registros de hora em hora, ocultando todos os outros do tempo 30 segundos a 59:30. Assim, ele irá exibir os dados que foram salvos, por exemplo, às 17:00, 18:00, 19:00, etc. Se o usuário digitar "15" e escolher a opção "minutos", no gráfico, será exibido no gráfico os dados que foram salvos no banco de dados às 17:00, 17:15, 17:30, 17:45, 18:00, 18:15, etc.
wellingtonjoao escreveu:
Boa tarde,
Você pode criar um campo DATETIME para ao ser inserido a hora do sistema no momento com o comando NOW()
fjdoliveira escreveu:
Pessoal, estou fazendo um sistema de datalogger e gostaria de saber se existe alguma função intrínseca do MySQL para pegar, na tela de pesquisa de registros, o valor em um intervalo de tempo pré-definido, ou se eu devo programar para comparar se o timestamp é igual ou imediatamente superior ao anterior, criar um array e incluir nele os valores com esse tempo pré-definidos. Caso essa situação só se resolva com programação (No meu caso, estou usando PHP), a ideia de fazer um fetch de todos os registros no intervalo completo de interesse e testando a condição do tempo é a forma mais eficaz/elegante de se fazer?
Por exemplo, os registros são armazenados no banco de dados a cada 30 segundos, mas eu queria fazer um gráfico que pegue apenas os dados de hora em hora. Assim, eu pegaria o primeiro registro, em seguida, eu descartaria do gráfico os registros seguintes cujos valores fossem menores do que 1 hora em relação ao primeiro registro filtrado. Em seguida, iria inserir no gráfico o registro cujo valor fosse 1 hora maior do que o segundo registro filtrado, e assim, sucessivamente. Seria como usar o limit/offset, mas ao invés de filtrar pelo número do registro, seria pela data/hora.
Agradeço desde já o apoio