如何选择日期的一部分?例如,这个日期在这里,2009-01-30T09:50:00,我想选择30.我该怎么做?
由于
答案 0 :(得分:1)
您可以使用SUBSTR(char_string, start_position,no_of_chars_to_read)
提取日期的任何部分
str = "2009-01-30T09:50:00";
sub_str = SUBSTR(str, 8, 2);
答案 1 :(得分:0)
SCAN非常擅长:
dtvar = '2009-01-30T09:50:00'
days = scan(dtvar,3,'-T:');
答案 2 :(得分:0)
我建议您在处理日期/日期时将其转换为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日期操作,这是你心中所想的。
有关图片格式的更多信息,请参阅http://www2.sas.com/proceedings/sugi31/243-31.pdf