0

Enterprise Guide で日付のプロンプトを表示するプログラムを実行しようとしています。プロンプトを構成しており、プログラムを実行すると表示されます。プログラムログの上部に、プロンプトのマクロ値が正しく入力されていることを示す次の行が表示されます。

7          %LET Processing_Month_end = 30Nov2015;
8          %LET Processing_Month = 01Nov2015;
9          %LET Processing_Month_label = November 2015;

私の質問は、これらのマクロ値を後でプログラムの日付として使用する方法です。簡単なデータステップを試してみると:

data dates;
  refDate = &Processing_Month;
run;

次のエラーが表示されます。

24         GOPTIONS ACCESSIBLE;
25         data dates;
26           refDate = &Processing_Month;
NOTE: Line generated by the macro variable "PROCESSING_MONTH".
26          01Nov2015
              _______
              22
ERROR 22-322: Syntax error, expecting one of the following: !, !!, &, *, **, +, -, /, <, <=, <>, =, >, ><, >=, AND, EQ, GE, GT, IN, 
              LE, LT, MAX, MIN, NE, NG, NL, NOTIN, OR, ^=, |, ||, ~=.  

27         run;

入力を使用して値を日付にフォーマットしようとすると:

data dates;
  refDate = input(&Processing_Month, date9.);
run;

同様のエラーが発生します。

24         GOPTIONS ACCESSIBLE;
25         data dates;
26           refDate = input(&Processing_Month, date9.);
NOTE: Line generated by the macro variable "PROCESSING_MONTH".
26         01Nov2015
             _______
             22
ERROR 22-322: Syntax error, expecting one of the following: !, !!, &, *, **, +, -, /, <, <=, <>, =, >, ><, >=, AND, EQ, GE, GT, IN, 
              LE, LT, MAX, MIN, NE, NG, NL, NOTIN, OR, ^=, |, ||, ~=.  

27         run;

マクロ値を日付リテラルでラップしようとすると、次のようになります。

data dates;
  refDate = '&Processing_Month'd;
run; 

エラー:

24         GOPTIONS ACCESSIBLE;
25         data dates;
26           refDate = '&Processing_Month'd;
                       ____________________
                       77
ERROR: Invalid date/time/datetime constant '&Processing_Month'd.
ERROR 77-185: Invalid number conversion on '&Processing_Month'd.

27         run;

このプロンプト マクロ変数を sas 日付として機能させるには、どの構文または関数を使用する必要がありますか?

4

1 に答える 1

2

あなたはほとんどそこにいます。日付リテラルは正しい答えですが、1 つ欠けていることを除けば、'&mvar.'解決されず、解決さ"&mvar."れるだけです。したがって、二重引用符と末尾の d に切り替えれば、その通りです。

data dates;
  refdate = "&processing_month."d;
run;
于 2015-11-05T17:15:09.077 に答える