4

SASマクロ変数をタイムスタンプに変換しようとしていて、変換中に困惑しました。私が使用しているコードを以下に示します。

%let date = '03/15/2013';
%put %sysfunc(inputn(&date,datetime26.6));

私が得ているエラーは

警告: %SYSFUNC または %QSYSFUNC マクロ関数によって参照される関数 INPUTN への引数 1 が範囲外です。注: %SYSFUNC 関数の実行中は、数学演算を実行できませんでした。操作の結果が欠損値に設定されました。

誰かがこれに対する答えを知っているかどうか教えてください。

4

3 に答える 3

2

マクロ変数で日付を操作する場合の私の好みは、実際の数値をマクロ変数に格納することです。フォーマットされた値を表示/印刷する必要がある場合は、その場でフォーマットを割り当てます。

%let date = %sysfunc(mdy(3,15,2013));
%put %sysfunc(putn(&date,date9.));

これにより、以下のような比較で使用できます (これが最も一般的なタスクです)。

data xx;
  set something;
  where datefield = &date;
run;
于 2013-09-04T14:34:00.310 に答える