如何在PROC FEDSQL中将YYMMDD格式字符值转换为日期格式?
在PROC FEDSQL中转换YYMMDD字符列为数值型日期的方法
PROC FEDSQL提供两种常用方式实现需求,下面分别说明:
方法1:沿用PROC SQL的INPUT()函数写法
FEDSQL支持SAS的INPUT()函数配合日期格式,直接复用你熟悉的逻辑即可:
proc fedsql; select INPUT(date_column, YYMMDD6.) as numeric_date format=YYMMDD10. from your_table; quit;
INPUT(date_column, YYMMDD6.):将字符型的date_column按6位YYMMDD格式解析为SAS数值型日期(存储为1960年1月1日以来的天数)format=YYMMDD10.:可选参数,用于将结果显示为2013-04-01这类易读格式
方法2:使用ANSI兼容的DATE_PARSE()函数
如果偏好标准SQL风格的函数,可使用DATE_PARSE()指定格式字符串解析:
proc fedsql; select DATE_PARSE(date_column, 'YYMMDD') as numeric_date format=YYMMDD10. from your_table; quit;
DATE_PARSE(date_column, 'YYMMDD'):按照指定的格式规则解析字符日期,返回SAS数值型日期- 格式字符串需与输入字符的格式严格匹配,此处
'YYMMDD'对应6位的年份后两位+月份+日期格式
两种方法最终都会生成SAS标准的数值型日期,可直接用于后续的日期计算或格式化输出。
内容的提问来源于stack exchange,提问作者supercoolphysicist
相关产品推荐
相关产品推荐

