Я пытаюсь преобразовать два строковых поля (месяц и год) в поле даты, которое я могу использовать в Tableau. Таблица находится в Hadoop. Я пробовал использовать to_date и concat, но в результате все получилось нулевым.
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;
укажите формат даты. По умолчанию это mmddyyyy
. использовать from_unixtime(unix_timestamp(concat(year,'-',month,'-','01'),'yyyy-MM-dd')) as dt
Даже select cast(concat(year,'-',month,'-','01') as DATE) as dt
работает отлично. Год и Месяц - это символы, а результирующий столбец - это столбец date
.
Отсутствует запятая после года, нет необходимости группировать по. Кроме того, TableX отличается от Table X?
select month,year,to_date(concat(year,'-',month,'-','01')) as date
from TableY
Привет ВК. Я добавил запятую, удалил группу по и все равно получил тот же результат (все нули). Да, две таблицы разные. Можно сказать Таблица X и Таблица Y.
@ M.Belhaj Что вы получите, если запросите выбрать год, месяц из Таблицы Y?
Какие символьные строки содержат YEAR и MONTH?