SAS Base (4)

The following SAS program is submitted:

data WORK.DATE_INFO;
Month=”01″ ;
Yr=1960 ;
X=mdy(Month,01,Yr) ;
run;

What is the value of the variable X?
A. the numeric value 0
B. the character value “01011960”
C. a missing value due to syntax errors
D. the step will not compile because of the character argument in the mdy function.

Check Answer
Answer: A

注解:SAS在存储日期时,将1960年1月1日作为基准日期,以数字0表示,1959年12月31日为-1,1960年1月2日为1,以此类推。MDY这个function的作用是将某一日期转化为SAS日期。1960年1月1日正是基准日期,所以X为数字0.值得注意的是,题目中的Month是字符型(Char)变量而非数字,在程序执行过程中,SAS将char “01”转化成了数字01,并在Log中通过Note予以显示:”Character values have been converted to numeric values at the places given by:”