SAS 新手,感谢一些帮助/指导。
我在 SQL Server DB 中有这样的日期和时间拆分:a1date
a1time
a2date
a2time
。我想将a1date
anda1time
合并到 ONE 和a2date
anda2time
合并到 TWO 中,并且能够找到 ONE 和 TWO 之间的时间差异。问题是变量是 Char 数据类型,需要转换为数字数据类型,我很困惑如何进行差异,因为 SAS 将其转换为自己的日期格式,然后无法合并日期和时间,如下所示。以下是我迄今为止尝试过的三种不同的方法,但均未成功。我真的很感激任何帮助。
proc sql;
select
input(substr(strip(AcDate),1,10),MMDDYY10.)as AcDate format mmddyy10. ,
input(substr(strip(AcTime),1,10),Time10.)as AcTime format Time10. ,
input(substr(strip(ConfDate),1,10),MMDDYY10.)as ConfDate format mmddyy10. ,
input(substr(strip(ConfTime),1,10),Time10.)as ConfTime format Time10. ,
AcDate + ' ' + AcTime as Acquired,
ConfDate + ' ' + ConfTime as Confirmed,
DATEDIFF(n, Acquired, Confirmed) AS DifferenceInMinutes,
from TableName;
我也尝试过使用不成功:(起初“as”出现错误)
proc sql;
select
cast(AcDate + ' ' + AcTime AS datetime) AS ‘Acquired’,
cast(ConfDate + ' ' + ComfTime AS datetime) AS ‘Confirmed’,
DATEDIFF(n, Acquired, Confirmed) AS DifferenceInMinutes
FROM tablename
我玩过这个,但不明白如何让它工作。
DATA _null_;
INFORMAT AcDate ConfDate DATE10.
AcTime ConfTime TIME10.
unit $10.;
FORMAT dt1 dt2 DATETIME.;
INPUT AcTime time1 date2 time2 unit;
dt1=DHMS(date1,0,0,time1);
dt2=DHMS(date2,0,0,time2);
difference=INTCK(unit,dt1,dt2);
PUT unit= dt1= dt2= difference=;
DATALINES;