提示日期类型

问题描述 投票:0回答:1

我有 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 的类型?

sas prompt
1个回答
0
投票

这是一个很好的方法,只是没有理由将宏语言与数据步骤语言混合在一起。

DATA_ = INPUT("&Prompt_DATA.", ANYDTDTE.);
IF (INDEXC("&Prompt_DATA_LABEL.", ',')) THEN DO;
 

END;

除此之外,SAS 并没有真正的类型——只有数字和字符。如果它接受“月”类型,它可能会被分配为该月的第一天(因此“2024 年 1 月”->

01JAN2024
),但你不能只测试这一点 - 毕竟每月的第一天是日间版本的合法值也是如此。

© www.soinside.com 2019 - 2024. All rights reserved.