在SAS中如何将CSV内的文本格式日期变量转换为date9格式?
SAS导入CSV日期列返回空值解决方案
问题根因
你CSV中的日期为May-21这类「英文月份缩写+横杠+两位年份」的格式,而代码中给Date变量设置的输入格式ddmmyyyy.与实际数据格式不匹配,SAS无法正常解析日期值,因此返回空值。
修正代码
将Date对应的informat修改为匹配该格式的monyy7.即可,该格式默认会将日期匹配到对应月份的第一天,刚好符合你需要的date9输出格式(例如May-21会解析为01MAY2021):
Data Test; infile "\\file.csv" delimiter="," missover firstobs=2 dsd lrecl=32767; informat Date monyy7.; format Name $100.; format Location $100.; format Date date9.; format Type $10.; input Name $ Location $ Date Type $; run;
补充说明
如果你的SAS运行环境为非英文locale,使用monyy7.仍出现解析失败的情况,可以将informat替换为anydtdte20.,SAS会自动尝试适配多种常见的日期字符串格式,兼容性更强。
内容的提问来源于stack exchange,提问作者willd9
相关产品推荐
相关产品推荐

