CYYMMDD(Cは20世紀の場合は0、21世紀の場合は1)の形式の日付を標準の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である必要はないことを明確にする必要があります)