在SAS中将字符变量转换为时间

时间:2014-09-22 18:21:01

标签: sas

我有一个名为post_time的变量,它的字符类型为

Type     : Character
Length   :  5 
Foramt   : $5. 
Informat : $5.

例如:00300,01250

我如何从中获得时间?有人可以帮助我吗? 需要时间看起来像03:00 AM 12:50 PM 需要在标准时区显示所有时间

2 个答案:

答案 0 :(得分:4)

SAS将通过HHMMSS信息直接与此合作。

data _null_;
  x = input('02100',HHMMSS5.);
  put x= timeampm9.;
run;

任何时区问题都可以使用时区敏感格式(如NLDATMTZ。)和/或TZONES2U或TZONEU2S函数进行处理,这些函数与DATETIME一起使用,但如果您从未使用,则可以使用您的时间值跨越日期边界(虽然使用有风险的时区)。

有关更详细的说明,请参阅SAS Documentation page on Timezones

答案 1 :(得分:0)

假设前三位是小时,后两位是分钟,这可能有效:

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;