Нужна первая дата и последняя дата последнего квартала на основе сегодняшней даты в SAS - PullRequest
1 голос
/ 27 февраля 2020

Мне нужно извлечь данные за последний квартал на основе сегодняшней даты. Мне нужно сделать это динамически c.

Используя intnx, я могу извлечь последний, а не первый день.

data _null_;
a = intnx('quarter',today(),-1,'end');
format a date9.;
put a;
run;

Кто-нибудь может поделиться логи c как узнать дату начала и окончания последнего квартала?

Ответы [ 2 ]

2 голосов
/ 27 февраля 2020

Требуется лишь небольшая поправка к последнему аргументу функции intnx

data _null_;
start = intnx('quarter',today(),-1,'b');
end   = intnx('quarter',today(),-1,'e');
put start= date9. end= date9.;
run;
1 голос
/ 27 февраля 2020

Из надежной INTNX документации :

Четвертый аргумент, выравнивание , является необязательным

'alignment'
контролирует положение дат SAS в интервале. Вы должны заключить выравнивание в кавычки. Выравнивание может быть одним из следующих значений:

  • BEGINNING
    указывает, что возвращаемое значение даты или даты и времени выравнивается по началу интервала.
    Псевдоним B

  • СРЕДНИЙ
    указывает, что возвращаемое значение даты или даты и времени выравнивается по средней точке интервала, который является среднее значение начального и конечного значений выравнивания.
    Псевдоним M

  • END
    указывает, что возвращаемое значение даты или даты и времени выравнивается до конца интервала. Псевдоним E

  • ЖЕ указывает, что возвращаемая дата имеет то же выравнивание, что и дата ввода.
    Псевдонимы S, SAMEDAY См. ЖЕ выравнивание для получения дополнительной информации.

По умолчанию НАЧАЛО

См. Выравнивание вывода даты SAS в пределах его интервалов для получения дополнительной информации.

...