在SAS中将字符变量转换为时间
我有一个叫做post_time的变量,它是字符类型在SAS中将字符变量转换为时间,sas,Sas,我有一个叫做post_time的变量,它是字符类型 Type : Character Length : 5 Foramt : $5. Informat : $5. 例:003001250 我如何从中获得时间?有人能帮我吗? 需要时间看起来像03:00AM 12:50PM 需要以标准时区显示所有时间假设前三位是小时,后两位是分钟,这可能有效: data have; input time $; cards; 00300 00400 00234 ; run; data wan
Type : Character
Length : 5
Foramt : $5.
Informat : $5.
例:003001250
我如何从中获得时间?有人能帮我吗?
需要时间看起来像03:00AM 12:50PM
需要以标准时区显示所有时间假设前三位是小时,后两位是分钟,这可能有效:
data have;
input time $;
cards;
00300
00400
00234
;
run;
data want;
set have;
time_var=hms(
input(substr(time, 1,3), 3.),
input(substr(time, 4,2), 2.),
0);
format time_var timeampm8.;
run;
假设前三位是小时,后两位是分钟,这可能有效:
data have;
input time $;
cards;
00300
00400
00234
;
run;
data want;
set have;
time_var=hms(
input(substr(time, 1,3), 3.),
input(substr(time, 4,2), 2.),
0);
format time_var timeampm8.;
run;
SAS将通过HHMMS信息直接处理此问题
data _null_;
x = input('02100',HHMMSS5.);
put x= timeampm9.;
run;
可以使用时区敏感格式(如NLDATMTZ.)和/或TZONES2U或TZONEU2S函数处理任何时区问题,这些函数使用DATETIME,但如果您从未跨越日期边界(尽管使用时区存在风险),则可以使用您的时间值
有关更详细的说明,请参阅。SAS将通过HHMMSS信息直接处理此问题
data _null_;
x = input('02100',HHMMSS5.);
put x= timeampm9.;
run;
可以使用时区敏感格式(如NLDATMTZ.)和/或TZONES2U或TZONEU2S函数处理任何时区问题,这些函数使用DATETIME,但如果您从未跨越日期边界(尽管使用时区存在风险),则可以使用您的时间值
有关更详细的解释,请参阅。这取决于其中存储的内容,不是吗?00300对应于什么时间值,3AM?它应该显示为03:00AM,而不是取决于其中存储的内容,不是吗?00300对应于什么时间值,3AM?它应该显示为03:00AM是否存在语法错误?我收到一个错误,在我的计算机SAS 9.3上显示error:Found“,”when expecting)Worked。对你的有用吗?非常感谢!!!这对我有用。然而,我还需要将其转换为IST时区。现在在标准时区。你能帮我一下吗?时区将以TZONESxx格式或使用TZONESxx函数处理。有语法错误吗?我收到一个错误,在我的计算机SAS 9.3上显示error:Found“,”when expecting)Worked。对你的有用吗?非常感谢!!!这对我有用。然而,我还需要将其转换为IST时区。现在在标准时区。你能帮我一下吗?时区将以TZONESxx格式或使用TZONESxx函数处理。