【发布时间】:2019-01-29 03:59:57
【问题描述】:
我在 SAS Enterprise Guide 7.1 M4 中的日期有问题。
在 SQL Server 或 VBA 中非常简单,但在 SAS 中让我发疯。
问题: 出于某种奇怪的原因,我无法做出简单的选择。我尝试了许多不同形式的格式化和转换,但似乎都有效 我的简单选择不返回任何观察结果。
T1.DT_DATE在proc内容中的描述 类型:数字 连:8 格式:DDMMYY10。 信息:DATETIME20。
%let DATE_EXAMPLE='01JAN2019'd;
data _null_;
call symput ('CONVERTED_DATE',put(&DATE_EXAMPLE, ddmmyy10.));
run;
%put &CONVERTED_DATE;
PROC SQL;
CREATE TABLE TEST_SELECT AS
SELECT *
FROM MY_SAMPLE_DATA as T1
WHERE T1.DT_DATE = &CONVERTED_DATE
;QUIT;
【问题讨论】:
-
谢谢@Kiran。它给了我解决问题的线索。
-
我终于明白了。 SAS 日期内部是一个 5 长度的数字,正如您所说,数据文字是 SAS 通信的方式。 DDMMMYYYY'd or DATE9 但是主要情况还是靠这个“D”在最后一个位置,所以我想出了解决问题的方法 cat("'", put(DATE_EXAMPLE, date9.), "'d") 所以这适用于我的新变量,传递给 proc sql no print :)
标签: sas