1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
* (Вопрос) Требуется извлечь часть строки, содержащую время, из строки, в которой есть дата и время.
* (Ответ) Ray, 31.10.2001.

DATA LIST FIXED /start 1-19(A).
BEGIN DATA
08/01/2001 10:15 AM
08/10/2001 12:00 PM
08/15/2001 09:15 AM
08/20/2001 11:45 PM
END DATA.
LIST.

* Строковые переменные должны быть определены перед их использованием.
* Сначала - без учёта AM/PM.
STRING timest(A5) ampm(A2).
COMPUTE timest=SUBSTR(start,INDEX(start,":") -2).
COMPUTE time1=NUMBER(timest,"TIME5").
FORMATS time1(TIME5).

/Теперь исправим время с учётом AM/PM.
COMPUTE ampm=SUBSTR(start,18).
* Время SPSS хранит в секундах.
* Если PM, добавляем 12 часов * 60 минут * 60 секунд ко времени AM.
DO IF ampm="PM".
COMPUTE time2=time1+12*60*60.
ELSE.
COMPUTE time2=time1.
END IF.

FORMATS time2(TIME5).
EXECUTE.