2017-03-01 9 views
1

データのエクスポート後、 "2017/02/22 1320:35 +000 4"の文字列変数が取得されます。私は別の変数に日付を取得するために管理SPSSの時間をhhmm:ssからhh:mm:ss(TIME8)に変換する

compute #TS = char.index(Timestamp_1, " "). 
string date (A10). 
compute date = char.substr(Timestamp_1,1,#TS). 
alter type date (A10 = SDATE10). 

:を通じて

同じ:フォーマット:それはSS HHMM "であるため、

string time (A8). 
compute time = char.substr(Timestamp_2,#TS+1,7). 
alter type time (A8 = TIME8). 

は時間のために動作しません。文字列変数 '1320:35'を時間変数'13:20:35 'に変更するにはどうすればよいですか?

答えて

0

種類を変更する前に、concat関数を使用して時間文字列に手動で ":"を挿入できます。

COMPUTE time = CONCAT(CHAR.SUBSTR(time,1,2),":",(CHAR.SUBSTR(time,3))). 

別のアプローチは、個別にタイムスタンプ変数から時間、分、秒を抽出し、TIME.HMS関数内でこれらの要素を使用することです:

COMPUTE #hh = NUMBER(CHAR.SUBSTR(Timestamp_1,TS+1,2),F2). 
COMPUTE #mm = NUMBER(CHAR.SUBSTR(Timestamp_1,TS+3,2),F2). 
COMPUTE #ss = NUMBER(CHAR.SUBSTR(Timestamp_1,TS+6,2),F2). 

COMPUTE time = TIME.HMS(#hh,#mm,#ss). 
EXECUTE. 

FORMATS time (TIME8). 
+0

ありがとうございます。この入力で私は前進することができます! – Larissa

+0

こんにちは@Larissaこの(将来の)答えがあなたの質問を解決した場合は、[それを受け入れる](http://meta.stackexchange.com/q/5234/179419)のチェックマークをクリックしてください。これは、あなたが解決策を見つけ出し、回答者とあなた自身の両方に評判を与えていることを広範なコミュニティに示します。これを行う義務はありません。 – mirirai

0

統計は、V24の新しい日時フォーマットとを有し、 ISO 8601タイムスタンプ形式、YMDHMS。文字列を通常の日付/時刻値に変換すると、XDATE.DATEおよびXDATE.TIME関数を使用してピースを抽出できます。日付と時刻のウィザードは、あなたが持っている形式に対応しているかもしれません(最後に+ 4000の部分があるかどうかはわかりません)。

関連する問題