7

SASで文字列を日付に変換したいのですが、次のことを試しました。

data _null_; 
   monyy = '05May2013'; 
   date = input(substr(strip(monyy),1,9),yymmdd.);;
   put date=date9.; 
   run;

しかし、それは機能しませんでした。これはできますか?

4

7 に答える 7

15

次のような形式

date9. 

また

mmddyy10. 

テキストをSAS日付に変換する際の入力コマンドには無効です。使用できます

Date = input( cdate , ANYDTDTE11.);

また

Date = input( cdate , ANYDTDTE10.); 

変換用。

于 2014-07-30T05:28:18.113 に答える
11

substrやstripは必要ありません。

input(monyy,date9.);
于 2013-03-26T21:11:10.113 に答える
3

上で述べたように、簡単な答えは次のとおりです。

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では、次のことを行う必要があります。

  1. INFORMATを変更します-date = input(monyy,date9.);
  2. FORMATを適用します-put date=YYMMDD10.;
于 2014-03-14T17:09:01.867 に答える
1

試す

data _null_; 
   monyy = '05May2013'; 
   date = input(substr(strip(monyy),1,9),date9.);
   put date=date9.; 
   run;
于 2013-03-26T21:02:55.287 に答える
1

input(char_val、date9。);

input(char_val、worddate。)を使用してWord形式に変換することを検討できます。

このページで多くを得ることができますhttp://v8doc.sas.com/sashtml/lrcon/zenid-63.htm

于 2013-04-02T11:28:36.180 に答える
1

このコードは次のことに役立ちます。

data final; set final;

first_date = INPUT(compress(char_date),date9.); format first_date date9.;

run;

私は個人的にSASでそれを試しました

于 2015-02-02T13:46:58.453 に答える
0
input(char_val,current_date_format);

setのように、表示時に任意の日付形式を指定できますchar_val=date9.;

于 2013-12-17T07:59:40.513 に答える