我有一个数值参数给我的宏,并希望将其转换为日期,设置为月底,并应用格式。
下面的代码适用于许多日期,但不适用于三月;抛出‘字面包含不匹配的引号’。
proc format;
picture mydatep
low-high = "'%0d-%0b-%0Y'" (datatype = date);
%macro test(cycle=);
%let enddate = %SYSFUNC(intnx(month, %SYSFUNC(inputn(&cycle., yymmn6.)), 0, e), mydatep.);
%put &enddate.;
%mend;
%test(cycle=201602); /* works --> 29-Feb-2016*/
%test(cycle=201603); /* works not */
%test(cycle=201604); /* works again --> 30-Apr-2016*/
%test(cycle=201402); /* works --> 28-Feb-2014*/
%test(cycle=201403); /* works not */
%test(cycle=201404); /* works again --> 30-Apr-2014*/
我使用这个代码已经有几年了,从来没有遇到过问题。我正在使用SAS Analytics Pro 9.4
发布于 2021-07-22 00:47:31
如果您在图片文本中使用结尾或emdash而不是连字符,则会将生成的字符串从12个字节更改为13或14个字节。这些非ASCII字符需要多于一个字节的存储空间。
因此,如果您的代码使用该格式的宽度12,则该值将被截断,删除右引号,也可能删除年份的最后一位数字。
https://stackoverflow.com/questions/68471357
复制相似问题