Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

DannyND

[Resolvido] Retornar Máximo e Mínimo

Recommended Posts

Olá galera,

 

Tenho registros das horas que um veículo está rodando por dia e preciso retornar quantas vezes ultrapassa 8h o dia.

A query que retorna as horas dia-a-dia imprimi as seguintes informações:

 

data: 2012-01-02 - hora: 09:01:08 - min: - máx:

data: 2012-01-02 - hora: 09:01:08 - min: - máx:

data: 2012-01-02 - hora: 09:04:10 - min: - máx:

data: 2012-01-02 - hora: 09:04:10 - min: - máx:

data: 2012-01-02 - hora: 18:12:35 - min: - máx:

data: 2012-01-02 - hora: 18:12:35 - min: - máx:

data: 2012-01-02 - hora: 18:15:36 - min: - máx:

data: 2012-01-02 - hora: 18:15:36 - min: - máx:

 

Preciso saber quantas horas o veículo ficou rodando por dia.

Alguém tem idéia do que posso fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi bem... Oque você quer saber? a diferença de horário em um unico dia?

 

data: 2012-01-02 - hora: 09:01:08 - min: - máx:

data: 2012-01-02 - hora: 09:01:08 - min: - máx:

data: 2012-01-02 - hora: 09:04:10 - min: - máx:

data: 2012-01-02 - hora: 09:04:10 - min: - máx:

data: 2012-01-02 - hora: 18:12:35 - min: - máx:

data: 2012-01-02 - hora: 18:12:35 - min: - máx:

data: 2012-01-02 - hora: 18:15:36 - min: - máx:

data: 2012-01-02 - hora: 18:15:36 - min: - máx:

18:15:36 - 09:01:08 = 09:14:28

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi bem... Oque você quer saber? a diferença de horário em um unico dia?

 

data: 2012-01-02 - hora: 09:01:08 - min: - máx:

data: 2012-01-02 - hora: 09:01:08 - min: - máx:

data: 2012-01-02 - hora: 09:04:10 - min: - máx:

data: 2012-01-02 - hora: 09:04:10 - min: - máx:

data: 2012-01-02 - hora: 18:12:35 - min: - máx:

data: 2012-01-02 - hora: 18:12:35 - min: - máx:

data: 2012-01-02 - hora: 18:15:36 - min: - máx:

data: 2012-01-02 - hora: 18:15:36 - min: - máx:

18:15:36 - 09:01:08 = 09:14:28

 

Então, preciso pegar a hora inicial e a final.

É exatamente isso que preciso, mas não posso fazer direto na query com MIN() e MAX() porque ela retornar as datas e não deu certo.

 

// Verifica Excesso 8h
$query_sub = "select 
    rlog_posicoes.dt_posicao,
    rlog_posicoes.hr_posicao
from rlog_posicoes 
where 
    rlog_posicoes.dt_posicao         >= '2012-01-02' and
    rlog_posicoes.dt_posicao         <= '2012-01-02' and 
    rlog_posicoes.id_ignicao	      = '1'	     and		
    rlog_posicoes.id_modulo           = '$id_modulo'";
$result_sub     = mysql_query($query_sub);
 while($row_sub  = mysql_fetch_object($result_sub)):
#como pegar a hora inicial e final retornadas??
 endwhile;

Compartilhar este post


Link para o post
Compartilhar em outros sites

A data e a hora estão gravadas em que formato? date, varchar?

 

Data como date e hora como time.

Mas não importa porque eu tenho que fazer o tratamento depois que retornar da query.

Compartilhar este post


Link para o post
Compartilhar em outros sites

$values = array('09:01:08 ','09:01:08 ','09:01:08','09:01:08 ','18:15:36');


$total =  array_pop($values);
 $res =  $total - $values[0];
echo $total,'<br />';
echo $values[0],'<br />';
echo $res;

a ideia e essa mais tem q faze o tratamento dos dados

pro resultado sai exato..

ve q bicho da isso

Compartilhar este post


Link para o post
Compartilhar em outros sites
SELECT TIME(MAX(hr_posicao) - MIN(hr_posicao)) AS `tempo_rodagem` FROM rlog_posicoes WHERE dt_posicao = '2012-01-02' AND id_ignicao = 1 AND id_modulo = $id_modulo

Compartilhar este post


Link para o post
Compartilhar em outros sites

$query_data_inicio = "select rlog_posicoes.hr_posicao from rlog_posicoes where rlog_posicoes.dt_posicao >= '2012-01-02' and rlog_posicoes.dt_posicao <= '2012-01-02' and rlog_posicoes.id_ignicao = '1' and rlog_posicoes.id_modulo = '$id_modulo' order by data asc LIMIT 1";

 

$query_data_fim = "select rlog_posicoes.hr_posicao from rlog_posicoes where rlog_posicoes.dt_posicao >= '2012-01-02' and rlog_posicoes.dt_posicao <= '2012-01-02' and rlog_posicoes.id_ignicao = '1' and rlog_posicoes.id_modulo = '$id_modulo' order by data desc LIMIT 1";

 

$inicio = mysql_fetch_array($query_data_inicio);

$fim = mysql_fetch_array($query_data_fim);

 

$hora_inicial = $inicio['hr_posicao'];

$hora_fim = $inicio['hr_fim'];

 

Pode ser feito assim também... Só que seria necessrário 2 consultas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou tentar galera.. retorno logo mais. Valeu

 

Evandro Oliveira ..aconteceu um troço estranho.

 

Quando busco a query "SELECT rlog_posicoes.dt_posicao, TIME(MAX(hr_posicao) - MIN(hr_posicao)) AS tempo_rodagem FROM rlog_posicoes WHERE rlog_posicoes.dt_posicao >= '2012-01-01' and rlog_posicoes.dt_posicao <= '2012-01-31' and rlog_posicoes.id_ignicao = '1' and rlog_posicoes.id_modulo = $id_modulo group by rlog_posicoes.dt_posicao" retornar perfeito o total de horas por dia:

 

2012-01-02 - 00:00:09

2012-01-03 - 00:00:11

2012-01-04 - 00:00:10

2012-01-05 - 00:00:11

2012-01-06 - 00:00:11

2012-01-07 - 00:00:12

 

Mas quando eu coloco a variável $id_modulo com aspas simples, aparece dessa forma:

 

2012-01-02 - 09:14:28

2012-01-03 -

2012-01-04 - 10:24:49

2012-01-05 -

2012-01-06 - 11:07:01

2012-01-07 -

 

Essa variável é alfanumérica, portanto preciso que esteja entre aspas simples.

O tipo do campo é VARCHAR(10)

Compartilhar este post


Link para o post
Compartilhar em outros sites

execute a seguinte consulta e veja se aparecem os valores corretamente:

 

SELECT rlog_posicoes.dt_posicao, hr_posicao FROM rlog_posicoes WHERE rlog_posicoes.dt_posicao >= '2012-01-01' and rlog_posicoes.dt_posicao <= '2012-01-31' and rlog_posicoes.id_ignicao = '1' and rlog_posicoes.id_modulo = '$id_modulo'

Compartilhar este post


Link para o post
Compartilhar em outros sites

execute a seguinte consulta e veja se aparecem os valores corretamente:

 

SELECT rlog_posicoes.dt_posicao, hr_posicao FROM rlog_posicoes WHERE rlog_posicoes.dt_posicao >= '2012-01-01' and rlog_posicoes.dt_posicao <= '2012-01-31' and rlog_posicoes.id_ignicao = '1' and rlog_posicoes.id_modulo = '$id_modulo'

 

Deu certo, era o GROUP BY que estava interferindo e não as aspas rs.

 

Obrigada a todos que ajudaram... bjsss

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.