Skip to main content
Announcements
Qlik Community Office Hours, March 20th. Former Talend Community users, ask your questions live. SIGN UP
cancel
Showing results for 
Search instead for 
Did you mean: 
filipemknh
Contributor III
Contributor III

Filtrar Horas de um campo Data e hora

Olá pessoal, tenho uma coluna com data e hora do tipo DD/MM/YYYY hh:mm:ss

Quero fazer um filtro numa tabela em que só apareçam datas cujas horas estejam dentro de um range de horas das 07:30:00 às 22:30:00 Já tentei de tudo quando foi forma e não obtive sucesso. 

tenho uma função que ma ajudou a filtrar no carregamento, mas vi que para outros dados eu preciso de todas as horas, então não posso utilizar. Tem que ser um filtro no gráfico mesmo.. seja em tabela ou em outro gráfico.

No carregamento este funcionou... mas como disse.. preciso utilizar no gráfico e numa tabela.

Where Time#(Time(Date(created_at,'DD/MM/YYYY'),'hh:mm:ss'),'hh:mm:ss') >='07:29:59' and Time#(Time(Date(created_at,'DD/MM/YYYY'),'hh:mm:ss'),'hh:mm:ss') <='21:29:00'

 

No carregento utilizo uma função de isola só a hora 

Date(Time(created_at,'DD/MM/YYYY hh:mm:ss'), 'hh:mm:ss') as Hora_Criada,

Mas também não consigo formar um filtro no gráfico com esta coluna.

 

Agradeço se aguem puder me ajudar.

1 Solution

Accepted Solutions
RafaMartins
Creator II
Creator II

Você precisa utilizar um set analysis na medida no gráfico.

Por exemplo, se quer contar o numero de processo dentro desse rang

Count({<Hora={">=7:00<=22:30"}>} processos )

isso vai deixar as dimensões setada apenas para os dados dentro desse rang

  

View solution in original post

6 Replies
RafaMartins
Creator II
Creator II

A resposta já está na função que você está utilizando no where, basta utilizar como campo no load.

Time#(Time(Date(created_at,'DD/MM/YYYY'),'hh:mm:ss'),'hh:mm:ss') as Hora

Assim você vc vai ter as horas que estão no campo data.

filipemknh
Contributor III
Contributor III
Author

Olá Rafael, muito bom dia! Inclusive você foi quem me ajudou! kkk

Mas Rafael, não consigo achar a sintaxe em que no gráfico eu consiga filtras horas das 7:30 ás 22:30. Isolar a hora tanto no load, quanto no gráfico já está ok. O que preciso é agora exibir no gráfico ou tabela só linhas que contenham horas que estão dentro deste range.

"Quero fazer um filtro numa tabela em que só apareçam datas cujas horas estejam dentro de um range de horas das 07:30:00 às 22:30:00 Já tentei de tudo quando foi forma e não obtive sucesso. "

RafaMartins
Creator II
Creator II

Você precisa utilizar um set analysis na medida no gráfico.

Por exemplo, se quer contar o numero de processo dentro desse rang

Count({<Hora={">=7:00<=22:30"}>} processos )

isso vai deixar as dimensões setada apenas para os dados dentro desse rang

  

filipemknh
Contributor III
Contributor III
Author

Certo. Rafael, eu penso ter dois problemas.. O primeiro, lá no load eu carrego de um banco de dados uma várias colunas, uma delas apresenta um dado assim 22/10/2020 11:32:40 . Blza, eu pego esta coluna e aplico uma mascara:

Date(Time(created_at,'DD/MM/YYYY hh:mm:ss'), 'hh:mm') as Hora_Criada,

Porém o que acontece.. se eu pego um Gráfico de filtro "Painel de Filtro" e puxo essa nova coluna criada "Hora_Criada" ela me apresenta todas as horas, mas ele repete os dados representando os dias.. Ou seja tem 31 dias no mês se eu tivesse cada dia um atendimento as 8:30 da manhã ele me apresenta 31 vezes o horário 8:30 da manhã.. em vez de aparecer apenas uma vez. Pois estou filtrando só um campo, o horário é o mesmo, então deveria aparecer apenas uma vez. Claro, se eu colocar essa coluna numa tabela, e adicionar outra coluna com um item como por exemplo o número do chamado que é um identificado único, aí sim, aí ele deveria aparecer 31 vezes o horário 8:30 por que de fato existe um chamado para cada hora dessas.  Esse creio estar sendo o primeiro problema.

O segundo é que eu quero criar uma tabela que me apresente só o campo created_at que é o campo que contém as datas e horas do atendimentos em que o horário do atendimento tenha sido entre 7:00:00 e 22:00:00.. 
Essa que você me mandou não deu certo.. Eu não quero contar nada, sem somar.. só quero que a tabela apresente só chamados dentro desses horários. 
Com aquele Where que você me mandou funciona certinho.. pois esse filtro já carrega no load.. mas deu problema por que ele obviamente exclui todos os outros atendimentos.. e eu preciso dos outros para outros parâmetros.  

Coloquei um gif de como está aqui minha interface.

RafaMartins
Creator II
Creator II

Veja se isso que precisa

Thiago_Justen_


@filipemknh wrote:

Olá pessoal, tenho uma coluna com data e hora do tipo DD/MM/YYYY hh:mm:ss

Quero fazer um filtro numa tabela em que só apareçam datas cujas horas estejam dentro de um range de horas das 07:30:00 às 22:30:00 Já tentei de tudo quando foi forma e não obtive sucesso. 

tenho uma função que ma ajudou a filtrar no carregamento, mas vi que para outros dados eu preciso de todas as horas, então não posso utilizar. Tem que ser um filtro no gráfico mesmo.. seja em tabela ou em outro gráfico.

No carregamento este funcionou... mas como disse.. preciso utilizar no gráfico e numa tabela.

Where Time#(Time(Date(created_at,'DD/MM/YYYY'),'hh:mm:ss'),'hh:mm:ss') >='07:29:59' and Time#(Time(Date(created_at,'DD/MM/YYYY'),'hh:mm:ss'),'hh:mm:ss') <='21:29:00'

 

No carregento utilizo uma função de isola só a hora 

Date(Time(created_at,'DD/MM/YYYY hh:mm:ss'), 'hh:mm:ss') as Hora_Criada,

Mas também não consigo formar um filtro no gráfico com esta coluna.

 

Agradeço se aguem puder me ajudar.


Bom dia.

Você pode criar uma flag no script para facilitar suas expressões em gráficos. Exemplo:

If(Time#(created_at)>=0.31 or Time#(created_at)<=0.94,

1,

0

)   As FlagTempo

 

 

Isso criará uma coluna com 1 quando hh:mm estiver entre 07:30:00 (0.31) e 22:30:00 (0.94).

 

Assim,  você poderá usar expressões com set analysis mais facilmente. 

 

Abs e Sucesso

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago