SAS: fecha y hora

En SAS, las fechas son un caso especial de valores numéricos. A cada día se le asigna un valor numérico específico, a partir del 1 de enero de 1960. A esta fecha se le asigna un valor de fecha de 0 y a la fecha siguiente se le asigna un valor de fecha de 1, y así sucesivamente. Los días anteriores a esta fecha están representados por los números -1, -2, etc. Con este enfoque, SAS puede representar cualquier fecha en el futuro y cualquier fecha en el pasado.

Cuando SAS lee datos de una fuente, convierte los datos leídos a un formato de fecha específico de acuerdo con el formato de fecha especificado. La variable para almacenar el valor de la fecha se declara con la información requerida. La fecha de salida se muestra utilizando formatos de datos de salida.

Información de fecha de SAS

Los datos originales se pueden leer correctamente utilizando información de fecha específica como se muestra a continuación. El número al final de la información indica el ancho mínimo de la cadena de fecha que debe leerse completamente usando la información. Un ancho menor dará un resultado incorrecto. con SAS V9 hay un formato de fecha común anydtdte15. que puede manejar cualquier entrada de fecha.

Fecha de entrada Ancho de fecha Informat
11/03/2014 diez mmddyy10.
11/03/14 8 mmddyy8.
11 de diciembre de 2012 20 worddate20.
14Mar2011 9 fecha 9.
14 de marzo de 2011 once fecha 11.
14 de marzo de 2011 15 anydtdte15.

Ejemplo

El siguiente código muestra cómo leer varios formatos de fecha. Tenga en cuenta que todos los valores de salida son solo números, ya que no aplicamos ningún operador de formato a los valores de salida.

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;

Cuando se ejecuta el código anterior, obtenemos el siguiente resultado.

date_time_1

Formato de salida de fecha SAS

Una vez leídas, las fechas se pueden convertir a un formato diferente según lo requiera la pantalla. Esto se logra utilizando el operador de formato para tipos de fecha. Aceptan los mismos formatos que informativos.

Ejemplo

En el siguiente ejemplo, la fecha se lee en un formato pero se muestra en un formato diferente.

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;

Cuando se ejecuta el código anterior, obtenemos el siguiente resultado.

fecha_hora_2

🚫