2016-08-02 2 views
1

как заголовок говорит, что у меня есть файл excel, который я импортирую в SAS, который имеет формат даты 2016/06/15. Мне нужно преобразовать его в datetime, чтобы я мог загрузить его в SQL.SAS - преобразование «2016/06/15» в формат даты и времени

Если я загружу 2016/06/15 в SQL (datetime), это дает мне некоторую случайную дату января 1960 года. Поэтому я предполагаю, что SQL также требует времени.

Мне нужен код для форматирования 2016/06/15 в datetime в программировании SAS.

Спасибо!

ответ

2

Вы можете использовать функцию dhms() для преобразования даты в дату и время. Пример:

data _null_; 
    my_date = date(); 
    my_datetime = dhms(my_date, 0, 0, 0); 
    put my_date date9. 
     my_datetime datetime22.; 
run; 

Выход:

02AUG2016 02AUG2016:00:00:00 

Если вы используете ODBC транзитную пересылку, чтобы вставить его в SQL см этот ответ (https://stackoverflow.com/a/24044451/214994) для советов о том, как сделать это.

+0

Здравствуйте, спасибо, что ответит. Если я заменил дату() на «06/15/2016», что похоже на набор данных SAS, когда я импортирую excel «2016/06/15». Мой выход по-прежнему: 01JAN1960 01JAN1960: 00: 00: 51 – mitoKon

+0

@mitoKon Существует несколько способов создания значений даты в SAS. Самыми простыми являются функция 'mdy (6,15,2016)' или задание буквенного обозначения '' 06/15/2016 «d». Обратите внимание на 'd' после заключительной цитаты в литературе даты. –

+0

Извините, мне очень плохо с форматированием в SAS .. У меня есть вход my_date = "06/05/2016" d; и я получаю ошибку: ОШИБКА: Недействительная константа даты/времени/даты и времени "06/05/2016" d. ОШИБКА 77-185: Неверное преобразование числа в "06/05/2016" d. – mitoKon

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