2015-11-24 43 views
0

我試圖將TIME8.值轉換爲TIME8.所在的原始格式中的字符變量。例如,如果值爲12:30:00,我想要一個也出現的字符值作爲12:30:00轉換TIME8。到沒有首先轉換爲數字格式的字符

如果我試圖簡單地用一個PUT('12:30:00'T,8.)語句轉換,它會先將其轉換爲原始形式,這是1800(因爲12:00的秒數)。

如何保持格式?與冒號和所有。

回答

1

只需使用格式TIME8。代替8.如以下所示,

data _null_; 
    val='12:30:00'T; 
    num=put(val,time8.); 
    put _all_; 
run; 

日誌,

1266 data test; 
1267 val='12:30:00'T; 
1268 num=put(val,time8.); 
1269 put _all_; 
1270 run; 

val=45000 num=12:30:00 _ERROR_=0 _N_=1 
NOTE: The data set WORK.TEST has 1 observations and 2 variables. 
NOTE: DATA statement used (Total process time): 
     real time   0.01 seconds 
     cpu time   0.01 seconds 
0

也可以使用vvalue函數,它返回以相同的方式顯示的原始值格式化的字符值。這樣你就不需要預先知道數字的格式了。

只有當你的原始值存儲爲變量,而不是像你的例子那樣對值進行硬編碼時,這纔會起作用。如果你只有硬編碼值,那麼你需要在@Vishant的答案中使用該方法。

data _null_; 
    val='12:30:00'T; 
    format val time8.; 
    num=vvalue(val); 
    put _all_; 
run;