【问题标题】:Applying Proc format to a date将 Proc 格式应用于日期
【发布时间】:2021-01-14 21:28:30
【问题描述】:

所以我正在处理这段代码来验证日期

 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 年代等,它只显示数字。任何眼尖的程序员都可以找出问题所在吗?我觉得这是一件非常简单的事情,我只是想念

【问题讨论】:

  • 日期已关闭。 22645 在未来。
  • 对不起,应该是22281

标签: sas proc-sql


【解决方案1】:

日期常数...

proc format fmtlib;
   value drange
      '01JAN1960'd - '31DEC1969'd = '60s'
      '01JAN1970'd - '31DEC1979'd = '70s'
      ;
   quit;

【讨论】:

    猜你喜欢
    • 2014-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-13
    • 2021-12-27
    • 2020-07-10
    • 1970-01-01
    相关资源
    最近更新 更多