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.
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. |
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.
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.
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.
🚫