"Invalid 2nd argument" 在 SAS 中使用 INTNX 时

"Invalid 2nd argument" when using INTNX in SAS

我有一个数据集,其中有一个名为日期的变量。它看起来像“31MAY13:00:00:00”,它的数据类型是日期。现在我想创建一个新变量,使其成为相应月份的第一天。所以对于“31MAY13:00:00:00”,它会给我“01MAY13:00:00:00”。这是我的代码:

DATA newdata;
SET olddata;
newvariable = INTNX('month',olddate,0,"B");
RUN;

日志显示:函数 INTNX 的参数 2 无效。为我使用 SAS 已经有一段时间了。任何想法?非常感谢!

除了@Dwal 的建议之外,您还可以使用 "datepart" 函数来提取日期,并且可以使用您一直使用的相同公式。

newvariable = INTNX('month',datepart(olddate),0,"B");

您的值是日期时间,而不是日期。您需要像这样将 dt 添加到间隔的前面以增加日期时间值:

DATA newdata;
SET olddata;
newvariable = INTNX('dtmonth',olddate,0,"B");
RUN;