Como usar a função intck no sas (com exemplos)
Você pode usar a função INTCK no SAS para calcular rapidamente a diferença entre duas datas no SAS.
Esta função usa a seguinte sintaxe básica:
INTCK (intervalo, data de início, dados finais, método)
Ouro:
- intervalo : intervalo a ser calculado (dia, semana, mês, trimestre, ano, etc.)
- data de início : a data de início
- data de término : a data de término
- método : contar intervalos usando um método discreto ou contínuo
O exemplo a seguir mostra como usar esta função na prática.
Exemplo: usando a função INTCK para calcular a diferença entre datas no SAS
Digamos que temos o seguinte conjunto de dados no SAS que contém duas variáveis de data:
 /*create dataset*/
data original_data;
    format start_date end_date date9. ;
    input start_date: date9. end_date: date9. ;
    datalines ;
01JAN2022 09JAN2022
01FEB2022 22FEB2022 
14MAR2022 04APR2022
01MAY2022 14AUG2023
06AUG2022 10NOV2024
;
run ;
/*view dataset*/
proc print data = original_data; 

Podemos usar o código a seguir para calcular a diferença entre os valores das variáveis start_date e end_date em dias, semanas, meses, trimestres e anos:
 /*create new dataset*/
data new_data;
    set original_data;
    days_diff = intck (' day ', start_date, end_date);
    weeks_diff = intck (' weeks ', start_date, end_date);
    months_diff = intck (' months ', start_date, end_date);
    qtr_diff = intck (' qtr ', start_date, end_date);
    years_diff = intck (' years ', start_date, end_date);
run ;
/*view new dataset*/
proc print data = new_data; 

As cinco novas variáveis mostram a diferença entre data_inicial e data_final em dias, semanas, meses, trimestres e anos.
Observe que podemos usar o argumento ‘ c ‘ na função INTCK para calcular apenas a diferença em dias, semanas, meses, trimestres e anos completos:
 /*create new dataset*/
data new_data;
    set original_data;
    days_diff = intck (' day ', start_date, end_date, ' c ');
    weeks_diff = intck (' weeks ', start_date, end_date, ' c ');
    months_diff = intck (' months ', start_date, end_date, ' c ');
    qtr_diff = intck (' qtr ', start_date, end_date, ' c ');
    years_diff = intck (' years ', start_date, end_date, ' c ');
run ;
/*view new dataset*/
proc print data = new_data; 

Observe a diferença entre esta tabela e a tabela anterior.
Nesta tabela, a diferença de semanas entre 1º de janeiro e 9 de janeiro é calculada como 1 , pois apenas uma semana inteira pode caber entre essas datas.
No entanto, na tabela anterior, a diferença em semanas foi calculada em 2 , uma vez que houve duas semanas parciais entre estas duas datas.
Recursos adicionais
Os tutoriais a seguir explicam como executar outras tarefas comuns no SAS:
 Como converter DateTime em data no SAS
 Como adicionar dias atualizados no SAS
 Como obter o dia da semana a partir da data no SAS
