将月份添加到季度日期

时间:2020-01-06 16:16:43

标签: date sas

我有两行代码来确定前一个季度的开始和结束日期。

put(INTNX('Quarter',today(),-1,'B'),MMDDYY10.)
put(INTNX('Quarter',today(),-1,'E'),MMDDYY10.)

上面的开始日期显示为10/1/2019 上面的结束日期显示为12/31/2019

但是我需要在每个日期前增加一个月,以等于以下日期。

2019年1月1日 1/31/2019

我尝试将以上内容嵌套在另一个intnx函数中,但它只返回空白。想法和帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

尝试

data _null_;
   * compute date values;

    * start of second month in prior quarter;
    start_date = intnx('MONTH', intnx ('QUARTER', today(), -1, 'B'), 1);

    * end of first month after prior quarter;
    end_date   = intnx('MONTH', intnx ('QUARTER', today(), -1, 'E'), 1, 'E');

    * log date values using a desired representation format;

    put (start_date end_date) (=mmddyy10./);

    * store a date value representation in a variable;
    * (this is not typically a desired thing to do);

    start_ymd = put (start_date, mmddyy10.);
    end_ymd   = put (end_date,   mmddyy10.);

    * log the string values that were forced to represent a date (via PUT);

    put start_ymd= / end_ymd=;
run;

日志应显示(2020年1月6日)

start_date=11/01/2019
end_date=01/31/2020
start_ymd=11/01/2019
end_ymd=01/31/2020

答案 1 :(得分:1)

以下内容完美运行。

put(INTNX('Month',INTNX('Quarter',today(),-1,'B'),+1,'B'),MMDDYY10.)

put(INTNX('Month',INTNX('Quarter',today(),-1,'E'),+1,'E'),MMDDYY10.)