将 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;