首先明确:这里的日期格式为‘15OCT2019:17:04:36.000’ ,已检查过新表的日期格式类型是日期(具体类型好像是DATETIME26.6)不是字符。
代码如下:
/首先框定了一些条件建立了一张新表/
proc sql;
create table FNL_INFO as
select *
from APPLICATION_DATA
where TYPE='网络’ and CR_DATE<='31MAY2021'D;
quit;
这个时候框定日期条件还是有用的。
/然后在对新表进行检查时发现/
proc sql;
select *
from FNL_INFO
where CR_DATE>'31MAY2021'd;
quit;
这个时候用where框定日期条件就不起作用了,按常理说现在应该不会获取到任何数据,
但实际上会出现CR_DATE是‘16DEC2020:13:53:10.000000’等时间范围外的结果。
想知道是为什么
select *
from APPLICATION_DATA
where TYPE='网络’ and CR_DATE<=cast('1980-12-17' as datetime);
使用日期格式转换函数转换为习惯的格式,如‘2021-8-1 00:00:00’这种格式。