【问题标题】:SAS Dates ProgrammaticallySAS 日期编程
【发布时间】:2015-11-04 20:39:28
【问题描述】:

我想创建 SAS 根据当前日期自动计算的日期。我要计算的日期是:

YYQ 格式的下一个季度(例如 161)
格式为 YYYY 的当前年份(例如 2015)
上周六之前的周六,格式为 DDMMMYYYY(例如 24OCT2015)
上周五的格式为 DDMMMYYYY(例如 30OCT2015)
当前季度的第一天,格式为 DDMMMYYYY(例如 01OCT2015)
当月的第一天,格式为 DDMMMYYYY(例如 01OCT2015)
当月的最后一天,格式为 DDMMMYYYY(例如 31OCT2015)

【问题讨论】:

  • 那么你的问题是什么?这不是编码服务,请发布您尝试过的内容。提示是查看 INTNX 函数。

标签: date sas


【解决方案1】:

下一季度

qtr = intnx('quarter',date(),1);
format qtr yyqn4.;

当年

year = date();
format year year4.;

上周六之前的周六

sat = intnx('week.7',date(),-2);
format sat date9.;

上周五

fri = intnx('week.6',date(),-1);
format fri date9.;

当前季度的第一天

qstart = intnx('quarter',date(),0);
format qstart date9.;

当月的第一天

mstart = intnx('month',date(),0);
format mstart date9.;

当月的最后一天

mend = intnx('month',date(),0,'end');
format mend date9.;

【讨论】:

  • 你的 mstart 和 mend 公式完全一样吗?
  • 对于周间隔,最好使用week.x(其中x 是工作日,1 [Sun] 到 7 [Sat]),而不是之后应用偏移量。您也可以将其应用于其他间隔,例如month.20 是基于 20 日的每月间隔。
猜你喜欢
  • 2012-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多