Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
junior_ehlke
Creator III
Creator III

Intervalo entre Datas e Horários - QlikView

Tentei procurar algo referente a intervalos de datas, mas o meu cenário é um pouco mais complexo pois envolve faixas de horários.

Em uma tabela de produtividade eu tenho dois Campos "Data" e "Hora".

Meu cliente deseja saber a produtividade das 06 Horas da manhã do dia 16 até as 09 horas da manhã do dia 17 por exemplo.

Criei um campo novo concatenando da data e ficou mais ou menos assim:

16/01/17|06:00:00

16/01/17|07:00:00

16/01/17|08:00:00

16/01/17|09:00:00

16/01/17|10:00:00

16/01/17|11:00:00

então eu posso selecionar esse intervalo de forma manual entre os dias 16 e 17 com os horários corretos, como eu poderia fazer para facilitar a seleção para o cliente?

Criar filtros DATA INICIAL, DATA FINAL, HORA INICIAL, HORA FINAL?

Labels (4)
1 Solution

Accepted Solutions
junior_ehlke
Creator III
Creator III
Author

Utilizei os recursos to tópico abaixo porém utilizando o range de data+Hora

De certa forma resolvi, porém o usuário tem que escrever a data completa e clicar no botão "Aplicar"

Seleção em uma data do tipo: De... Até...

Vou fechar o tópico, mas se alguém souber de uma maneira mais fácil pode reabrir.

View solution in original post

6 Replies
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Já pensou em usar DERIVE FIELDS nos script?

Transforma sua data em um datatime e declare conforma o script de exemplo:

[Cal]:

DECLARE FIELD DEFINITION Tagged ('$date')

Parameters

  first_month_of_year = 1

  

FIELDS

  date($1,'DD/MM/YYYY hh') as [Data Hora],

  date(floor($1),'DD/MM/YYYY') AS [Data],

  Year($1) AS [Ano],

  Month($1) AS [Mês],

  MonthName($1) AS [Mês Ano],

  Ceil(Month($1)/6) & ' Semestre' AS [Semestre],

  Ceil(Month($1)/3) & ' Trim' AS [Trimestre],

  Ceil(Month($1)/2) & ' Bim' AS [Bimestre],

  DayNumberOfQuarter($1) AS [Dia Trimestre],

  DayNumberOfYear($1) AS [Dia Ano],

  Week($1) AS [Nº Semana],

  Weekday($1) as [Dia da Semana],

  Day($1) AS [Dia],

  Day($1)&'|'&Weekday($1) as [Dia|S],

  Hour($1) as [Hora],

  Minute($1) as [Minuto];

DERIVE FIELDS FROM FIELDS "DATA INICIAL", "DATA FINAL", USING [Cal];

Remova a dimensão Calendário/Data que você estiver e teste este modelo. Veja se atende no seu caso.

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
junior_ehlke
Creator III
Creator III
Author

Mario, obrigado pela atenção mas o seu código tem dois poréns:

Primeiro que o datatime resolve parcialmente meu caso, ele funciona mas fica ruim para o usuário final fazer a seleção, por isso sugeri campos com data inicial e final assim como os horários inicial e final

Segundo é que o código que você mandou é do Sense, meu problema é do Qlikview mesmo.

mario_sergio_ti
Partner - Specialist
Partner - Specialist

Não tem a função DERIVE no Qlikview?

Sei que quase todas as funções existem;

Fonte: https://help.qlik.com/pt-BR/sense/3.1/Subsystems/Hub/Content/Scripting/functions-statements-not-reco...

Em FIELDS daria para você agrupar/personalizar as datas da forma que convêm para apresentação/filtros aos usuários.

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
junior_ehlke
Creator III
Creator III
Author

Infelizmente não tem essa função, não sei se eu iria conseguir fazer essa dimensão que eu preciso.

mario_sergio_ti
Partner - Specialist
Partner - Specialist

Já passei por esta situação com Qlik Sense, e consegui resolver desta forma.

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
junior_ehlke
Creator III
Creator III
Author

Utilizei os recursos to tópico abaixo porém utilizando o range de data+Hora

De certa forma resolvi, porém o usuário tem que escrever a data completa e clicar no botão "Aplicar"

Seleção em uma data do tipo: De... Até...

Vou fechar o tópico, mas se alguém souber de uma maneira mais fácil pode reabrir.