2

次の方法で INTCK を使用しようとしていますが、エラーが発生します。何が間違っているのかわかりません。よろしくお願いします。ありがとう。

PROC FORMAT;
PICTURE DTFMT LOW-HIGH='%0m/%0d/%Y'  (DATATYPE=DATETIME);
RUN;

data want;
dt_val1='17JUL2006:00:00:00.000'dt;
dt_val2='17AUG2012:00:00:00.000'dt;
format dt_val1 dt_val2 dt_val3 dtfmt.;
dt_val3=intck('MONTH',dt_val1,dt_val2);
put dt_val3;
run;
4

2 に答える 2

1

date に変換する必要があるため、次のいずれかを使用できます。

data want;
dt_val1='17JUL2006:00:00:00.000'dt;
dt_val2='17AUG2012:00:00:00.000'dt;
d1 =input(substr(put(dt_val1,datetime.),1,7),date7.);
d2 =input(substr(put(dt_val2,datetime.),1,7),date7.);
months=intck('month',d1,d2);
run;

また

   data want;
dt_val1='17JUL2006:00:00:00.000'd;
dt_val2='17AUG2012:00:00:00.000'd;
months=intck('month',dt_val1,dt_val2);
run;

または、probackpacker が提案したように datepart を使用することをお勧めします。

data want;
dt_val1='17JUL2006:00:00:00.000'dt;
dt_val2='17AUG2012:00:00:00.000'dt;
months=intck('month',datepart(dt_val1),datepart(dt_val2));
run;
于 2013-06-19T13:57:51.170 に答える