如何在SAS数据步中从Datetime25.6格式提取日期和时间?
SAS数据步提取Datetime25.6格式的日期与时间
SAS中Datetime25.6是日期时间显示格式,对应的变量实际存储的是从1960年1月1日0点开始累计的秒数。要提取mm/dd/yyyy格式的日期和hh:mm:ss格式的时间,可通过以下两种方式实现:
方式一:生成带格式的数值型变量
这种方式保留SAS日期/时间的数值存储特性,同时通过格式指定显示样式:
data new_xyz; set xyz; /* 提取日期并设置为mm/dd/yyyy格式 */ date_part = datepart(Date); format date_part mmddyy10.; /* 提取时间并设置为hh:mm:ss格式 */ time_part = timepart(Date); format time_part time8.; run;
代码说明:
datepart(Date):从日期时间变量Date中提取日期部分,返回SAS日期值(以1960年1月1日为起点的天数)mmddyy10.:控制日期显示为mm/dd/yyyy格式(如03/15/2024)timepart(Date):从日期时间变量Date中提取时间部分,返回SAS时间值(以当天0点为起点的秒数)time8.:控制时间显示为hh:mm:ss格式(如10:25:47)
方式二:生成字符型日期/时间字符串
如果需要直接得到字符格式的结果,可使用put函数:
data new_xyz; set xyz; /* 生成mm/dd/yyyy格式的字符型日期 */ date_char = put(datepart(Date), mmddyy10.); /* 生成hh:mm:ss格式的字符型时间 */ time_char = put(timepart(Date), time8.); run;
内容的提问来源于stack exchange,提问作者Harisha G
相关产品推荐
相关产品推荐

