我有 PROMPT_DATA 的标准例程:可以输入 Month('January 2024') 或 type=day ('24jan2024')
DATA_ = INPUT("&Prompt_DATA.", ANYDTDTE.);
%LET HasComma = %SYSFUNC(INDEXC(&Prompt_DATA_LABEL., ','));
%IF &HasComma. > 0 %THEN %DO;
我正在寻找一个“,”,所以我知道它意味着一天。 如何更好地测试 Prompt_Data 的类型?
这是一个很好的方法,只是没有理由将宏语言与数据步骤语言混合在一起。
DATA_ = INPUT("&Prompt_DATA.", ANYDTDTE.);
IF (INDEXC("&Prompt_DATA_LABEL.", ',')) THEN DO;
END;
除此之外,SAS 并没有真正的类型——只有数字和字符。如果它接受“月”类型,它可能会被分配为该月的第一天(因此“2024 年 1 月”->
01JAN2024
),但你不能只测试这一点 - 毕竟每月的第一天是日间版本的合法值也是如此。