Преобразование даты и времени SAS в формат SQL - PullRequest
0 голосов
/ 17 марта 2020

Я получил вывод SAS с датой и временем, подобным этому, в файле excel:

25MAR2019: 00: 00: 00.000

Есть идеи, как мне преобразовать это в формат MM-DD-YYYY?

если бы это было в формате даты / времени эпохи, я знаю, как конвертировать. Я попытался проанализировать это как строки и делать это, но это не настоящая строка.

Ответы [ 2 ]

0 голосов
/ 17 марта 2020

Отформатируйте переменные даты и времени в формате SAS E8601DN.

E8601DNw. Формат

Записывает даты из значений даты и времени SAS с использованием расширенной нотации ISO 8601 гггг-мм-дд.

Назначение Excel ODS отобразит значение даты и времени SAS в виде Excel порядковый номер даты в ячейке в формате Excel Number/Custom/yyyy-mm-dd

Пример

Значения даты и времени во втором PROC PRINT используют * Формат 1024 *.

data have;
  my_datetime = dhms('15MAR2020'D, 0,0,0);
  format my_datetime datetime22.;              * renders as ddmonyyyy:hh:mm:ss;
run;

ods excel file='my_output.xlsx' options(sheet_interval="none");

proc print noobs data=have;
run;

proc print noobs data=have;
  format my_datetime E8601DN.;
run;

ods excel close;

фрагмент Excel
enter image description here

фрагмент диалогового окна Excel «Формат ячеек»
enter image description here

0 голосов
/ 17 марта 2020

In SQL Сервер

Declare @S varchar(50) = '25MAR2019:00:00:00.000'

Select AsString = convert(varchar(10),try_convert(date,stuff(stuff(left(@S,9),6,0,' '),3,0,' ')),110)
      ,AsDate   = try_convert(date,stuff(stuff(left(@S,9),6,0,' '),3,0,' '))

Возвращает

AsString    AsDate
03-25-2019  2019-03-25
...