SAS - Data e Horários

As datas do IN SAS são um caso especial de valores numéricos. Cada dia é atribuído a um valor numérico específico a partir de 1º de janeiro de 1960. A essa data é atribuído o valor de data 0 e a próxima data tem um valor de data 1 e assim por diante. Os dias anteriores a esta data são representados por -1, -2 e assim por diante. Com esta abordagem, o SAS pode representar qualquer data no futuro e qualquer data no passado.

Quando o SAS lê os dados de uma fonte, ele converte os dados lidos em um formato de data específico, conforme especificado no formato de data. A variável para armazenar o valor da data é declarada com as informações adequadas necessárias. A data de saída é mostrada usando os formatos de dados de saída.

SAS Data Informat

Os dados de origem podem ser lidos corretamente usando informações de datas específicas conforme mostrado abaixo. O dígito no final da informação indica a largura mínima da string de data a ser lida completamente usando a informação. Uma largura menor dará resultado incorreto. com SAS V9, há um formato de data genéricoanydtdte15. que pode processar qualquer entrada de data.

Data de entrada Largura da data Informat
11/03/2014 10 mmddyy10.
11/03/14 8 mmddyy8.
11 de dezembro de 2012 20 worddate20.
14mar2011 9 data9.
14-mar-2011 11 date11.
14-mar-2011 15 anydtdte15.

Exemplo

O código abaixo mostra a leitura de diferentes formatos de data. Observe que todos os valores de saída são apenas números, pois não aplicamos nenhuma instrução de formato aos valores de saída.

DATA TEMP;
INPUT @1 Date1 date11. @12 Date2 anydtdte15. @23 Date3 mmddyy10.   ;
DATALINES;
02-mar-2012 3/02/2012 3/02/2012
;
PROC PRINT DATA = TEMP;
RUN;

Quando o código acima é executado, obtemos a seguinte saída.

Formato de saída de data SAS

As datas, depois de lidas, podem ser convertidas para outro formato conforme exigido pelo display. Isso é obtido usando a instrução de formato para os tipos de data. Eles assumem os mesmos formatos das informações.

Exemplo

No exemplo a seguir, a data é lida em um formato, mas exibida em outro formato.

DATA TEMP;
INPUT  @1 DOJ1 mmddyy10. @12 DOJ2 mmddyy10.;
format  DOJ1 date11.  DOJ2 worddate20. ;
DATALINES;
01/12/2012 02/11/1998 
;
PROC PRINT DATA = TEMP;
RUN;

Quando o código acima é executado, obtemos a seguinte saída.