Sas 选择约会中想要的部分

Sas 选择约会中想要的部分,sas,date-formatting,Sas,Date Formatting,如何选择日期的一部分?例如,这里的这个日期,2009-01-30T09:50:00,我想选择30。我该怎么做 谢谢扫描在这方面非常出色: dtvar = '2009-01-30T09:50:00' days = scan(dtvar,3,'-T:'); 您可以使用SUBSTR(字符字符串、起始位置、无字符读取)提取日期的任何部分 str = "2009-01-30T09:50:00"; sub_str = SUBSTR(str, 8, 2); 我建议在处理日期/日期时间时,将其转换为SAS

如何选择日期的一部分?例如,这里的这个日期,2009-01-30T09:50:00,我想选择30。我该怎么做


谢谢

扫描在这方面非常出色:

dtvar = '2009-01-30T09:50:00'

days = scan(dtvar,3,'-T:');
您可以使用
SUBSTR(字符字符串、起始位置、无字符读取)
提取日期的任何部分

str = "2009-01-30T09:50:00";
sub_str = SUBSTR(str, 8, 2);

我建议在处理日期/日期时间时,将其转换为SAS内部格式。这会让你在路上省去很多痛苦。当涉及到模糊的日期时间格式时,您可以使用proc format、picture命令来定义特定的输入。以下内容适用于这种情况,并应适用于完整数据集

proc format;/*Define the format*/
    picture mydate other='%0Y-%0m-%0DT%0H:%0M:%0S' (datatype=datetime);
run;

data a;
   full_date_time='2009-01-30T09:50:00'dt; /*The input.*/
   date_part=datepart(full_date_time); 
   day_of_the_month=day(date_part); /*this is the '30' you are after.*/
run;
这种方法的美妙之处在于,在经历了所有这些之后,你可以做所有正常的SAS日期操作,而这正是你内心所渴望的


有关图片格式的详细信息,请参见

oh忘了提及当前的字符格式