使用proc sql以不同的日期格式连接2个表

时间:2017-04-11 20:58:00

标签: sql join sas

我正在尝试使用proc sql在sas中连接两个表。但是日期不同(表1将Datetime作为格式,表2具有date9)。我想加入带有id(在两个表中都很常见)和日期的表。 DATEPART似乎没有用。有任何想法吗?这是我试图运行但不起作用的代码:

proc sql;
create table p.data1 as
select 
    a.*,
    b.var1 as var1_alt,
    Datepart(b.MonthEndDate) format date9. as EOMDate

from 
    p.base_1 a

    left join q.a_GLV b
    on a.ID = b.ID
    and a.MonthEndDate = b.MonthEndDate
order by
    a.ID,
    a.MonthEndDate
;
quit;

1 个答案:

答案 0 :(得分:1)

您需要在加入中使用datepart,因为datetimedate在SAS中是不同的数字(秒数与天数之比)。

proc sql;
create table p.data1 as
select 
    a.*,
    b.var1 as var1_alt,
    Datepart(b.MonthEndDate) format date9. as EOMDate

from 
    p.base_1 a

    left join q.a_GLV b
    on a.ID = b.ID
    and a.MonthEndDate = datepart(b.MonthEndDate)
order by
    a.ID,
    a.MonthEndDate
;
quit;