Consulta SQL por Hora?

Delphi

02/01/2007

Amigos, como faço para montar uma consulta sql por hora:

exemplo: tenho uma tabela com o campo no fotmato time,
e quero montar a pesquisa por um determinado horario

assim : DE 08:00:00 até 10:00:00

a consulta deve me retorna os valores agrupados por horario tipo todos
de 08:00:00 depois todos de 09:00:00 depois todos 10:00:00


Fábio Galvão

Fábio Galvão

Curtidas 0

Respostas

Farjola

Farjola

02/01/2007

Acho que pelo SQL não tem como fazer deste jeito que vc quer, só se vc tiver um campo comum para todos os registros de uma faixa horaria ex:

03:10:05 - faixa 3
03:50:14 - faixa 3
04:24:45 - faixa 4
....
assim vc manda agrupar pelo campo faixa logo ele te retorna o total de cada faixa do jeito que vc quer.
Caso vc consiga pelo SQL sem adicionar este campo poste aqui depois!
flw!


GOSTEI 0
Joaoshi

Joaoshi

02/01/2007

Colega, tente assim:

SELECT CampoHora FROM SuaTabela
WHERE CampoHora between ´08:00´ AND ´10:00´
ORDER BY CampoHora

Espero ter ajudado.


GOSTEI 0
Patrick Domingos

Patrick Domingos

02/01/2007

Olá, tive o mesmo problema meu caro, e resolvi apenas sendo curioso e alterando o comando padrão SELECT CONVERT(VARCHAR(11), 'SEU CAMPO DE DATE_TIME' ,114) FROM 'SUA TABELA'.

Esse comando exibe apenas a parte "time" de um campo Date_time no seguinte formato hh:mm:ss:mm. Note que o primeiro parâmetro do CONVERT é a cadeia de caracteres de retorno, que no caso do padrão recebe o valor 11.

Se colocarmos "2" ao invés de "11" obteremos somente as horas(hh) do valor de retorno. Daí você pode trabalhar como quiser, agrupando os dados por faixa horária, fazendo PIVOT com o resultado, enfim... a gama de opções é grande.

Espero ter ajudado amigo.
GOSTEI 0
Wekslei Silva

Wekslei Silva

02/01/2007

Em MySql:

SELECT CASE
WHEN a.hora BETWEEN '08:00:00' AND '08:59:59' THEN '08:00:00'
WHEN a.hora BETWEEN '09:00:00' AND '09:59:59' THEN '09:00:00'
WHEN a.hora BETWEEN '10:00:00' AND '10:59:59' THEN '10:00:00'
ELSE 'Sem registro'
END AS 'Intervalo', COUNT(*) AS 'Registro',

FROM suatabela a
WHERE a.hora BETWEEN (:hora1) AND (:hora2)
GROUP BY CASE
WHEN a.hora BETWEEN '08:00:00' AND '08:59:59' THEN '08:00:00'
WHEN a.hora BETWEEN '09:00:00' AND '09:59:59' THEN '09:00:00'
WHEN a.hora BETWEEN '10:00:00' AND '10:59:59' THEN '10:00:00'
ELSE 'Sem registro'
END
GOSTEI 0
POSTAR