我正在寻找将 CYYMMDD 格式的日期(其中 C 是 0 代表 20 世纪或 1 代表 21 世纪)为标准 SAS 日期。此代码将使用“proc sql”放置在 SAS 查询中,以便它可以将 SAS 日期与存储在 DB2 中的日期进行比较。
示例:输入数据=1130101,输出='1Jan2013'd
我试过的例子是:
(substr(t1.'EffectDate'n,4,2)|| '/' || substr(t1.'EffectDate'n,6,2) || '/' || cast(substr(t1.'EffectDate'n,1,3) AS INTEGER) + 1900)
这对 cast() 函数失败(似乎它不存在?)
也试过:
convert(varchar(10), convert(datetime, right(t1.'EffectDate'n, 6), 12), 101)
但是 varchar(10) 不存在。
我的查询如下所示:
proc sql;
create table CLAIMS as select
t1.CID,
t1.MID,
t1.DOS
OTHER_TABLE.ChangeDate AS EffectDate
FROM
SOURCE.REJECTED t1
INNER JOIN
EGTASK.OTHER_TABLE
ON
t1.DOS >= *Converted_Date*
[... goes on a couple more lines...]
其中 *Converted_Date* 是我需要的。
(但是,我应该澄清一下,这个特定的查询/连接不一定需要是 SQL)