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:
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.