2016-11-17 52 views
0

我嘗試串時間的方式如下:SAS:10長後子串的時間在SAS

HH = substrn(Time,1,2); MM = substrn(Time,4,2); SS = substrn(Time,7,2); MSS = substrn(Time,10,3); 

但是,SAS沒有看到最後一部分(MSS),這應該是最後的3個數字,即毫秒。時間變量格式爲time20.3。並顯示長度爲8. 我認爲這是長度的錯,但我該如何將它增加到10?我只知道它是如何工作的非數字變量。

Best,M

回答

0

如果TIME格式爲TIME20.3,那麼它是一個數值變量。對於數字變量,存儲長度爲10是不可能的,因爲SAS將所有數字存儲爲64位浮點數。

只需使用函數來獲取零件。

hour = hour(time); 
minute = minute(time); 
second = second(time); 
milliseconds = 1000*(time - int(time)); 

如果您沒有將它轉換爲字符,那麼SAS會自動使用BEST12轉換它。格式。因此,而不是像'09:26:47.543'這樣的值,您將看到類似'34007.542699'的值。

您可以使用VVALUE()函數查看格式化值或PUT()函數。