Proc SQL将日期添加到日期

问题描述 投票:0回答:2
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

sql sas proc
2个回答
1
投票

您只需要在变量后面使用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将天数存储为自01JAN1960以来的天数,因此您可以使用添加来添加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
投票

您可以使用这些标准SQL方法

Date + INTERVAL 28 DAY

DATEADD(DAY, 28, Date)
© www.soinside.com 2019 - 2024. All rights reserved.