将 Proc 格式应用于日期
Applying Proc format to a date
所以我正在使用这段代码来验证日期
proc format fmtlib;
value drange
'01JAN1900'd - '31DEC1909'd = '1900s'
'01JAN1910'd - '31DEC1919'd = '1910s'
'01JAN1920'd - '31DEC1929'd = '1920s'
'01JAN1930'd - '31DEC1939'd = '1930s'
'01JAN1940'd - '31DEC1949'd = '1940s'
'01JAN1950'd - '31DEC1959'd = '1950s'
'01JAN1960'd - '31DEC1969'd = '1960s'
'01JAN1970'd - '31DEC1979'd = '1970s'
'01JAN1980'd - '31DEC1989'd = '1980s'
'01JAN1990'd - '31DEC1999'd = '1990s'
'01JAN2000'd - '31DEC2009'd = '2000s'
'01JAN2010'd - '31DEC2019'd = '2010s'
'01JAN2020'd - '31DEC2020'd = '2020'
'01JAN2021'd - %sysfunc(today()) = '2021'
%sysfunc(today())- HIGH ='FUTURE?!'
;
run;
proc freq data=dm.dm;
format brthdat drange.;
table brthdat/missing list nopercent;
title "CHECK DATE OF BIRTH";
run;
但是它并没有像我希望的那样工作,它只显示数字,而不是 1990 年代、1980 年代等。任何眼尖的程序员都可以找出问题所在吗?我觉得这很简单,我只是想念
日期常量...
proc format fmtlib;
value drange
'01JAN1960'd - '31DEC1969'd = '60s'
'01JAN1970'd - '31DEC1979'd = '70s'
;
quit;
所以我正在使用这段代码来验证日期
proc format fmtlib;
value drange
'01JAN1900'd - '31DEC1909'd = '1900s'
'01JAN1910'd - '31DEC1919'd = '1910s'
'01JAN1920'd - '31DEC1929'd = '1920s'
'01JAN1930'd - '31DEC1939'd = '1930s'
'01JAN1940'd - '31DEC1949'd = '1940s'
'01JAN1950'd - '31DEC1959'd = '1950s'
'01JAN1960'd - '31DEC1969'd = '1960s'
'01JAN1970'd - '31DEC1979'd = '1970s'
'01JAN1980'd - '31DEC1989'd = '1980s'
'01JAN1990'd - '31DEC1999'd = '1990s'
'01JAN2000'd - '31DEC2009'd = '2000s'
'01JAN2010'd - '31DEC2019'd = '2010s'
'01JAN2020'd - '31DEC2020'd = '2020'
'01JAN2021'd - %sysfunc(today()) = '2021'
%sysfunc(today())- HIGH ='FUTURE?!'
;
run;
proc freq data=dm.dm;
format brthdat drange.;
table brthdat/missing list nopercent;
title "CHECK DATE OF BIRTH";
run;
但是它并没有像我希望的那样工作,它只显示数字,而不是 1990 年代、1980 年代等。任何眼尖的程序员都可以找出问题所在吗?我觉得这很简单,我只是想念
日期常量...
proc format fmtlib;
value drange
'01JAN1960'd - '31DEC1969'd = '60s'
'01JAN1970'd - '31DEC1979'd = '70s'
;
quit;