SASで文字列を日付に変換したいのですが、次のことを試しました。
data _null_;
monyy = '05May2013';
date = input(substr(strip(monyy),1,9),yymmdd.);;
put date=date9.;
run;
しかし、それは機能しませんでした。これはできますか?
SASで文字列を日付に変換したいのですが、次のことを試しました。
data _null_;
monyy = '05May2013';
date = input(substr(strip(monyy),1,9),yymmdd.);;
put date=date9.;
run;
しかし、それは機能しませんでした。これはできますか?
次のような形式
date9.
また
mmddyy10.
テキストをSAS日付に変換する際の入力コマンドには無効です。使用できます
Date = input( cdate , ANYDTDTE11.);
また
Date = input( cdate , ANYDTDTE10.);
変換用。
substrやstripは必要ありません。
input(monyy,date9.);
上で述べたように、簡単な答えは次のとおりです。
date = input(monyy,date9.);
追加:
put date=yymmdd.;
これが機能する理由と、機能しない理由は、SASでよくある誤解によるものです。DATE9。INFORMATです。INPUTステートメントでは、SASインタープリターに、テキストを正しい数値に変換するためにコンパイラーに送信できる一連の変換コマンドを提供します。これは、正しいFORMATが適用されると日付のようになります。FORMATは、数字(または文字)の単なる表示表現です。したがって、YYMMDD。を使用すると、INPUT関数をINFORMATではなくFORMATに渡すことで混乱し、おそらく次のような有用なエラーが発生します。
Invalid argument to INPUT function at line... etc...
それはあなたに次に何をすべきかについて全く何も教えてくれませんでした。
要約すると、キャラクターの日付をYYMMDDとして表します。SASでは、次のことを行う必要があります。
date = input(monyy,date9.);
put date=YYMMDD10.;
試す
data _null_;
monyy = '05May2013';
date = input(substr(strip(monyy),1,9),date9.);
put date=date9.;
run;
input(char_val、date9。);
input(char_val、worddate。)を使用してWord形式に変換することを検討できます。
このページで多くを得ることができますhttp://v8doc.sas.com/sashtml/lrcon/zenid-63.htm
このコードは次のことに役立ちます。
data final; set final;
first_date = INPUT(compress(char_date),date9.); format first_date date9.;
run;
私は個人的にSASでそれを試しました
input(char_val,current_date_format);
setのように、表示時に任意の日付形式を指定できますchar_val=date9.;