KB-28190: Filtro na Consulta SQL utilizando o valor da hora.

Descrição:

Como posso fazer uma consulta de período (data inicial e data final) que adicione também um filtro por hora dentro do período selecionado (por exemplo, quero retornar do banco apenas os dados entre às 17 e 20 horas de todos os dias do período escolhido)?

Solução:

No SQL Server, existe a função DatePart(), responsável por extrair qualquer parte (hora, dia, mês, etc) de uma data. Na cláusula Where da Consulta, pode-se inserir um script semelhante a:

WHERE (E3Timestamp >= #<%DataInicial%># and E3Timestamp < #<%DataFinal%>#) and (DatePart(hh,E3TimeStamp) >= 17 and DatePart(hh,E3TimeStamp) < 20)

Onde:

  • DataInicial será a variável a ser configurada com a data/hora inicial da consulta; e
  • DataFinal será a variável a ser configurada com a data/hora final da consulta.

Ou seja, a Consulta será filtrada pelas datas inicial e final, mas apenas onde a hora for maior que 17 e menor que 20 horas.

Se a Consulta for utilizada no E3Chart, esses dados serão todos ligados, isto é, uma linha será traçada conectando o último registro de um dia com o primeiro do próximo dia. Não ficará um espaço em branco entre eles. Este é o comportamento NORMAL do E3Chart.
 
NOTA: Se a função DatePart() não funcionar em outros bancos, deve-se procurar por outra similar para o banco desejado ou conferir se a sintaxe é diferente.

Print Friendly, PDF & Email

Este artigo foi útil? Was this helpful?

Classificação média - Average rating 5 / 5. Count: 1

Leave a Reply

Your email address will not be published.Required fields are marked *