2016-11-17 1 views
0

Ich versuche Zeit die folgende Art und Weise zu String:SAS: Substring TIme in SAS nach 10 Länge

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

Allerdings ist SAS nicht den letzten Teil sehen (MSS), die die letzten drei Ziffern lang sein sollte, das heißt die Millisekunden. Die Zeitvariable ist als time20.3 formatiert. und zeigt eine Länge von 8. Ich glaube, es ist die Länge der Fehler, aber wie kann ich es auf 10 erhöhen? Ich weiß nur, wie es für nicht-numerische Variablen funktioniert.

Best, M

Antwort

0

Wenn TIME-Format TIME20.3 hat, dann ist es eine numerische Variable. Eine Speicherlänge von 10 ist für numerische Variablen nicht möglich, da SAS alle Zahlen als 64-Bit Gleitkomma speichert.

Verwenden Sie einfach Funktionen, um Teile zu erhalten.

Wenn Sie es nicht selbst in ein Zeichen umwandeln, konvertiert SAS es automatisch mit BEST12. formatieren Sie stattdessen. Anstelle eines Werts wie '09:26:47.543' sehen Sie einen Wert wie '34007.542699'.

Sie könnten VVALUE() Funktion verwenden, um den formatierten Wert oder die PUT() Funktion zu sehen.