sql - Proc SQL 在日期中添加天数

标签 sql sas proc

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 天。它有效,但它以数字格式给我它,即自 1960 年 1 月 1 日以来的天数,我认为是这样,我该如何解决这个问题? Start_DT 按预期显示为 01OCT2018

最佳答案

您只需在变量后面使用 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 将天数存储为自 1960 年 1 月 1 日以来的天数,因此您只需使用加法即可添加 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;

关于sql - Proc SQL 在日期中添加天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55031331/

相关文章:

sql - 使用 SQL 序数位置表示法的好处?

compare - SAS proc 比较中的 BY 语句

ruby - 在符号上链接 & to_proc

loops - SAS——按组处理保留第一个和最后一个点

linux - linux i686 上的 current_task 是什么?

linux -/proc 或/sys 中的磁盘统计信息

sql - Oracle 11g SQL 在多列查询的一列中获取唯一值

SQL Server - 非规范化连接表以提高性能

sql - Oracle:以注释开头的查询对性能有影响吗?

r - 有没有办法将 rda/RData 数据从 R 加载到 SAS 中?