Proc SQL добавляет дни к дате - PullRequest
0 голосов
/ 06 марта 2019
Proc Sql;
Create table dates As
Select 
a.custid,
a.Displayed_date As Start_Dt,
intnx('day',a.Displayed_date,28) As Max_dt
From inscope_records a;
Quit;

Просто изучаю, как использовать SAS EG, поэтому создал proc SQL для добавления 28 дней к дате.Это работает, но это дает мне это в числовом формате, то есть дни с 01.01.1960 Я думаю, что это, как я могу это исправить?Start_DT отображается как 01OCT2018, как и ожидалось

Ответы [ 2 ]

1 голос
/ 06 марта 2019

Вам просто нужно использовать параметр FORMAT= после переменной, чтобы указать SAS, какой формат использовать для отображения значений вашей новой переменной.

create table dates as
  select 
    a.custid
  , a.Displayed_date as Start_Dt
  , intnx('day',a.Displayed_date,28) As Max_dt format=date9.
  from inscope_records a
;

Обратите внимание, что SAS хранит дни как количество дней с 01 января 1960 года, поэтому вы можете просто использовать сложение, чтобы добавить 28 дней.

Displayed_date + 28

Если вы используете обычный код SAS, используйте оператор FORMAT для присоединения форматов.

data dates;
  set inscope_records;
  Max_dt = displayed_date + 28;
  format Max_dt date9.;
  keep custid displayed_date Max_dt;
  rename displayed_date = Start_dt;
run;
1 голос
/ 06 марта 2019

Вы можете использовать эти стандартные методы SQL

Date + INTERVAL 28 DAY

DATEADD(DAY, 28, Date)
...