选择日期的通缉部分

时间:2016-12-21 18:18:58

标签: sas date-formatting

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

由于

3 个答案:

答案 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