2014-10-06 93 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的日期值。它看起來像您的原始數據正在填充不正確。