2014-10-06 89 views
0

你好,我想把一个数据集的特定日期放入一个宏,所以我可以在数据步骤中使用它,但我总是得到01年1月 - 01日保证日期,我想 我的代码是下一个:SAS宏从PROC SQL日期错误

 proc sql noprint ; 
     select WEEK_START 
     into :WEEK_START 
     from date_table 
     WHERE FW= 5; 
     quit; 

     %let start=&WEEK_START; 
     %LET TODAY= TODAY(); 

我做了这个,所以我可以看到我想要的日期:

 DATA TEMP;  
     DATE =&TODAY;  
     DATE1= &start; 
     FORMAT DATE DATE1 datE11.; 
     RUN; 

,其结果是:

日期:06-OCT -2014 DATE1:01-JAN-1960

+1

你的一周的开始日期实际上是一个日期时间变量。尝试使用dtdate11。改为格式。 – Reeza 2014-10-06 15:30:19

回答

0
proc sql noprint ; 
    select today()-1 as WEEK_START 
    into :WEEK_START 
    from maps.africa; 
    quit; 

    %let start=&WEEK_START; 
    %LET TODAY= TODAY(); 


    DATA TEMP;  
    DATE =&TODAY;  
    DATE1= &start; 
    FORMAT DATE DATE1 datE11.; 
    RUN; 

当我运行这个,都填充正确。

此外,在您的示例中Date1的值是数值为0的日期值。它看起来像您的原始数据正在填充不正确。