Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Brenogazi
Contributor II
Contributor II

Contar dias em comum entre dois intervalos de datas

Olá pessoal!

 

Preciso criar um cálculo em que eu consiga identificar quantos dias o colaborador estava afastado dentro de um período específico.

Tenho as duas variáveis abaixo que me dão os dias de início e fim do período que quero contar:

Set vPrecoSemanaINICIO1 = ' 07/08/2019 '; 
Set vPrecoSemanaTERMINO1 = ' 13/08/2019 ';

Após isso, em meu script tenho a data de início e término do afastamento do colaborador:

[AFASTAMENTO]:
LOAD
"Nome do Colaborador",
DATA_INCIO_AFASTAMENTO_MES_ATUAL,
DATA_TERMINO_AFASTAMENTO_MES_ATUAL
FROM [lib://LOJA PERFEITA/AFASTAMENTO_QVD.QVD]
(qvd);

Como consigo uma contagem de dias que coincidem entre os dois períodos?

 

Obrigado!!

 

1 Solution

Accepted Solutions
Brenogazi
Contributor II
Contributor II
Author

Olá @Ezir ,

 

Consegui chegar no resultado esperado alterando um pouco o racional:

 

If(Date(If('$(vPrecoSemanaTERMINO1)'<DATA_TERMINO_AFASTAMENTO_MES_ATUAL,'$(vPrecoSemanaTERMINO1)'+1,DATA_TERMINO_AFASTAMENTO_MES_ATUAL+1), 'DD/MM/YYYY')-
Date(If('$(vPrecoSemanaINICIO1)'>DATA_INCIO_AFASTAMENTO_MES_ATUAL,'$(vPrecoSemanaINICIO1)',DATA_INCIO_AFASTAMENTO_MES_ATUAL), 'DD/MM/YYYY')<0,0,
Date(If('$(vPrecoSemanaTERMINO1)'<DATA_TERMINO_AFASTAMENTO_MES_ATUAL,'$(vPrecoSemanaTERMINO1)'+1,DATA_TERMINO_AFASTAMENTO_MES_ATUAL+1), 'DD/MM/YYYY')-
Date(If('$(vPrecoSemanaINICIO1)'>DATA_INCIO_AFASTAMENTO_MES_ATUAL,'$(vPrecoSemanaINICIO1)',DATA_INCIO_AFASTAMENTO_MES_ATUAL), 'DD/MM/YYYY'))

 

Obrigado pela ajuda!!

View solution in original post

2 Replies
Ezir
Creator II
Creator II

Olá @Brenogazi ,

 

Você pode usar a função:

Interval(Data1- Data2,'d')

 

Se eu entendi bem sua necessidade, uma sugestão é fazer uma condição no script para determinar a Data1 e outro para Data2, por exemplo, algo assim:

if($(vPrecoSemanaINICIO1)>DATA_INICIO_AFASTAMENTO_MES_ATUAL,if($(vPrecoSemanaINICIO1)<DATA_TERMINO_AFASTAMENTO_MES_ATUAL,$(vPrecoSemanaINICIO1))) AS Data1

 

Ezir

Brenogazi
Contributor II
Contributor II
Author

Olá @Ezir ,

 

Consegui chegar no resultado esperado alterando um pouco o racional:

 

If(Date(If('$(vPrecoSemanaTERMINO1)'<DATA_TERMINO_AFASTAMENTO_MES_ATUAL,'$(vPrecoSemanaTERMINO1)'+1,DATA_TERMINO_AFASTAMENTO_MES_ATUAL+1), 'DD/MM/YYYY')-
Date(If('$(vPrecoSemanaINICIO1)'>DATA_INCIO_AFASTAMENTO_MES_ATUAL,'$(vPrecoSemanaINICIO1)',DATA_INCIO_AFASTAMENTO_MES_ATUAL), 'DD/MM/YYYY')<0,0,
Date(If('$(vPrecoSemanaTERMINO1)'<DATA_TERMINO_AFASTAMENTO_MES_ATUAL,'$(vPrecoSemanaTERMINO1)'+1,DATA_TERMINO_AFASTAMENTO_MES_ATUAL+1), 'DD/MM/YYYY')-
Date(If('$(vPrecoSemanaINICIO1)'>DATA_INCIO_AFASTAMENTO_MES_ATUAL,'$(vPrecoSemanaINICIO1)',DATA_INCIO_AFASTAMENTO_MES_ATUAL), 'DD/MM/YYYY'))

 

Obrigado pela ajuda!!