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

Como Calcular tempo ano e mês ?

Ola,  gostaria de saber como fazer calculo de tempo de ano e mês ? eu tenho os campos  ano, mês e anomes da admissão e ano, mês e anomes da demissão , como eu faço calculo para a resposta vim em meses ?

Labels (5)
1 Solution

Accepted Solutions
pablolabbe
Luminary Alumni
Luminary Alumni

Gustavo,

Calcule a diferença de datas, isto vai te dar a diferença em dias, e divida por 30.5 para calcular um médio de meses. Como você tem os campos separados, você tem que construir uma data para o calculo funcionar.

ceil((makedate(Ano_Adm,Mes_Adm,1)-makedate(Ano_Dem,Mes_Dem,1)) / 30.5)

O ceil arredonda para o próximo inteiro, isto é: se o resultado for 2.2 então a função retorna 3.

caso queira arredondar 'para baixo" use o floor.

pablolabbe

View solution in original post

6 Replies
lucianosv
Specialist
Specialist

Boa tarde.

Use a função interval:

Intervalo

interval( expressão [ , código de formato ])

A função interval formata a expressão como um intervalo de tempo, de acordo com o caracter fornecido como código de formato. Se o código de formato for omitido, será utilizado o formato de hora definido no sistema operacional. Os intervalos podem ser formatados como hora, dia ou como uma combinação de dias, horas, minutos, segundos e frações de segundos.

Exemplos:

Os exemplos abaixo supõem as seguintes configurações do sistema operacional:

   

Formato de data abreviada:

YY-MM-DD

Formato de hora:

hh:mm:ss

Separador de número decimal:

.

interval( A ) em que A=0.375 retorna:

   

Caracter

09:00:00

Número

0.375

interval( A ) em que A=1.375 retorna:

   

Caracter

33:00:00

Número

1.375

interval( A, 'D hh:mm' ) em que A=1.375 retorna:

   

Caracter

1 09:00

Número

1.375

interval( A-B, 'D hh:mm' ) em que A=97-08-06 09:00:00 e B=96-08-06 00:00:00 retorna:

   

Caracter

365 09:00

Número

365.375 

pablolabbe
Luminary Alumni
Luminary Alumni

Gustavo,

Calcule a diferença de datas, isto vai te dar a diferença em dias, e divida por 30.5 para calcular um médio de meses. Como você tem os campos separados, você tem que construir uma data para o calculo funcionar.

ceil((makedate(Ano_Adm,Mes_Adm,1)-makedate(Ano_Dem,Mes_Dem,1)) / 30.5)

O ceil arredonda para o próximo inteiro, isto é: se o resultado for 2.2 então a função retorna 3.

caso queira arredondar 'para baixo" use o floor.

pablolabbe

pablolabbe
Luminary Alumni
Luminary Alumni

Não tinha visto a resposta do Luciano ainda, mas está valendo também.

interval(makedate(Ano_Adm,Mes_Adm,1)-makedate(Ano_Dem,Mes_Dem,1),'MM')

Not applicable
Author

Ola Vasconcelos, tudo bem ?
Obrigado pela resposta, eu estou em um nível intermediário de programação e não entendi a sua  sugestão acima.

Em anexo segue uma planilha extraída do qlik view  com os registros para calculo. Caso for melhor também possua o campo Mês/Ano.

É possivel com a planilha desenvolver um exemplo?

pablolabbe
Luminary Alumni
Luminary Alumni

Gustavo,

   Você não tem as colunas de data de admissão e data de demissão na sua aplicação ? Com os campos data (dia/mes/ano) é mais fácil fazer estas operações de tempo.

Not applicable
Author

Ola, Pablo eu tenho os campos sim, eu saparei eles em dia, mês e ano, tanto para admissão para demissão.