我期待將格式爲CYYMMDD(其中C對於20世紀爲0或對於21世紀爲1)的日期轉換爲標準SAS日期。該代碼將放置在使用'proc sql'的SAS查詢中,以便它可以將SAS日期與存儲在DB2中的日期進行比較。將CYYMMDD轉換爲SAS DB2中的日期通過SAS
實施例:我試圖輸入數據= 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)
失敗到鑄造()函數(顯示爲它不存在?)
也試過:
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)
首先,沒有必要包圍單引號和'N'預選賽SAS變量名; 'EffectDate'就好了。它是什麼類型的變量(字符或數字)? – BellevueBob 2013-02-18 00:39:49
這些報價是從玩遊戲中剩餘的 - 這只是在那個聲明中。該變量是數字。它是格式爲「Example」中列出的輸入數據 – 2013-02-18 00:45:23
對不起,這是如此複雜,但兩個LIBREFS「SOURCE」和「EGTASK」是指什麼?它們是不同的DB2連接還是一個SAS庫? – BellevueBob 2013-02-18 01:43:34