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

使用proc sql以不同的日期格式连接两个表,sql,join,sas,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 fro

我正在尝试使用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;
您需要在联接中使用datepart,因为datetime和date在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;

先将它们转换为相同的日期类型