2014-10-31 3 views
2

У меня есть переменная даты в данных. Значение в переменной не очень хорошо отформатировано. Я хочу преобразовать их в формат даты SAS, такой как datetime9. ,Преобразование нестандартной даты в дату SAS в SAS

Дата

2 ноября 2013 10:00 утра
6 октября 2012 11:00 утра
26 августа 2002 18:00 PM
22 марта 2012 7:00 утра

ответ

2

Есть несколько функций, чтобы знать около.

  1. scan (str, n) - это тянет n-го слова от строки.

  2. catt (str1, str2, str3) - это объединяет строки.

  3. вход (ул, информ) - это преобразует строку в число с помощью Informat

  4. dhms (д, ч, м, S) - день часа минуты секунды. Дата, плюс части времени равно дате.

Также DDMONYYYY является информа = date9.

HH:MM <AM|PM> является информа = time.

Итак ...

data test; 
format date $20.; 
date = "Nov 2 2013 10:00AM"; output; 
date = "Oct 6 2012 11:00AM"; output; 
date = "Aug 26 2002 18:00PM"; output; 
date = "Mar 22 2012 07:00AM"; output; 
run; 

data test; 
set test; 
format day date9. time time. date2 datetime.; 
day = input(catt(scan(date,2),scan(date,1),scan(date,3)),date9.); 
time = input(scan(date,4),time.); 
date2 = dhms(day,hour(time),minute(time),second(time)); 
run; 
+0

это очень хорошо !!! –

+0

Что делать, если значение станет 2013-11-26 14:45:15? –

+0

Вы можете использовать функцию сканирования. Он имеет необязательный третий параметр, который является разделителем. MDY() работает как DHMS(), но с месяцем, днем ​​и годом. Проверьте их оба в документации SAS. Кроме того, информационная информация 'time.' должна работать с этим временем. – DomPazz

1
data any; 
    attrib datevar format=date9.; 
    infile cards; 
    input datevar ANYDTDTM20.; 
    datevar=datepart(datevar); 
    cards; 
Nov 2 2013 10:00AM 
Oct 6 2012 11:00AM 
Aug 26 2002 18:00PM 
Mar 22 2012 07:00AM 
;run; 
+0

спасибо, но что, если данные станут такими? –

+0

Я не уверен, что вы подразумеваете под этим комментарием, Лу Ю. –

+0

Если значение datetime равно "2013-11-06 11:05:12", вы все равно можете использовать ANYDTDTM informat –

Смежные вопросы