SAS – 日期和时间

SAS – 日期和时间


IN SAS 日期是数值的特殊情况。从 1960 年 1 月 1 日开始,每一天都被分配了一个特定的数值。这个日期被分配了日期值 0,下一个日期的日期值是 1,依此类推。到此日期的前几天由 -1 、 -2 等表示。通过这种方法,SAS 可以表示未来的任何日期和过去的任何日期。

当 SAS 从源读取数据时,它会将读取的数据转换为指定日期格式的特定日期格式。使用所需的正确信息声明存储日期值的变量。使用输出数据格式显示输出日期。

SAS 日期信息

通过使用特定的日期信息可以正确读取源数据,如下所示。informat 末尾的数字表示使用 informat 完整读取的日期字符串的最小宽度。较小的宽度会产生错误的结果。对于 SAS V9,有一个通用日期格式anydtdte15。它可以处理任何日期输入。

Input Date 日期宽度 信息
03/11/2014 10 mmddyy10.
03/11/14 8 mmddyy8.
December 11, 2012 20 worddate20.
14mar2011 9 日期 9.
14-mar-2011 11 日期 11.
14-mar-2011 15 anydtdte15。

例子

下面的代码显示了不同日期格式的读取。请注意所有输出值都只是数字,因为我们没有对输出值应用任何格式声明。

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;

执行上述代码后,我们得到以下输出。

日期_时间_1

SAS 日期输出格式

读取后的日期,可以根据显示需要转换成其他格式。这是使用日期类型的格式语句实现的。它们采用与信息格式相同的格式。

例子

在下面的示例中,日期以一种格式读取,但以另一种格式显示。

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;

执行上述代码后,我们得到以下输出。

日期时间_2

觉得文章有用?

点个广告表达一下你的爱意吧 !😁