Как преобразовать строковое поле месяца и года в формат даты в кусте (с помощью SAS)?

Я пытаюсь преобразовать два строковых поля (месяц и год) в поле даты, которое я могу использовать в Tableau. Таблица находится в Hadoop. Я пробовал использовать to_date и concat, но в результате все вышло как null.

Proc SQL noerrorstop;
Connect to HADOOP (server=X); 
Execute (set X) by HADOOP; 
Execute (drop Table X) by HADOOP; 
Execute (create Table X as
SELECT month, year
to_date(concat(YEAR,"-",MONTH,"-","01")) as date
from TableX
group by month, year
) by HADOOP;
DISCONNECT FROM HADOOP;
quit;

person M.Belhaj    schedule 20.06.2018    source источник
comment
Какие символьные строки содержат YEAR и MONTH?   -  person Tom    schedule 20.06.2018
comment
укажите формат даты. По умолчанию это mmddyyyy. использовать from_unixtime(unix_timestamp(concat(year,'-',month,'-','01'),'yyyy-MM-dd')) as dt   -  person samkart    schedule 21.06.2018
comment
Даже select cast(concat(year,'-',month,'-','01') as DATE) as dt работает отлично. Год и Месяц - это символы, а результирующий столбец - это столбец date.   -  person samkart    schedule 21.06.2018


Ответы (1)


Отсутствует запятая после года, нет необходимости группировать по. Также TableX отличается от Table X?

select month,year,to_date(concat(year,'-',month,'-','01')) as date
from TableY
person VK_217    schedule 20.06.2018
comment
Привет ВК. Я добавил запятую, удалил группу по и все равно получил тот же результат (все нули). Да, две таблицы разные. Можно сказать Таблица X и Таблица Y. - person M.Belhaj; 20.06.2018
comment
@ M.Belhaj Что вы получите, если запросите выбрать год, месяц из Таблицы Y? - person VK_217; 20.06.2018