我将DBF文件导入SAS,其中包含多个日期列。我想对其中一些列进行一些检查,例如:
在我的DBF文件中,日期列的格式为' dd / mm / yyyy' (巴西标准格式)。 例如,我在第一行:
下面是DBF导入的片段。
我们的想法是创建验证规则(每个规则的宏)来检查日期。
data inputs;
call symput('campo1', "DATA_INI_V");
call symput('campo2', "DATA_FIM_V";
call symput('sistema2', "PVR_SUPERVIDA");
call symput('hoje', %sysfunc(today(),ddmmyy10.));
run;
filename inf "/folders/myfolders/BVP Data Quality/PVR_SUPERVIDA_201408.DBF";
proc dbf db4=inf out=test;
现在我想做一些简单的SELECT COUNT(*)来计算寄存器的总数和无效寄存器的数量。类似的东西:
proc sql print;
SELECT COUNT(*) from test where &campo1 < '01/01/1900';
SELECT COUNT(*) from test where &campo1 < '01/01/1900' and &campo1 > TODAY();
SELECT COUNT(*) from test where &campo1 > &campo2;
run;
由于我在DBF文件中的日期列被读作SAS中的文本,我无法比较日期的值。
有什么建议吗?
感谢。
答案 0 :(得分:0)
在读取DBF文件后,为什么不将日期(字符格式)转换为实际日期格式,以便进行比较。
E.g:
realdate = input(mytextdatefield,date9.);