Как мне преобразовать дату в data_type после объединения? - PullRequest
0 голосов
/ 10 октября 2019

У меня есть запрос, в котором я объединяю месяц и год и сохраняю его как MY, который преобразует его в строку. Нужна помощь в преобразовании даты в тип данных из строки после объединения.

select concat (month(date),'-', year(date)) as MY, post_evar10, device_type, sum(pageviews) as pageviews, count(distinct uniquevisitors) as uniquevisitors
from temp.MS_Adobe_Discover1
group by MY, post_evar10, device_type
order by MY asc;

Ответы [ 2 ]

0 голосов
/ 14 октября 2019

Нет формата даты, например, «2019-10» или «10-2019».

Мы можем получить эту строку из типа даты, но не можем преобразовать строку из "2019-10" или "10-2019" в тип данных date. Это выдаст ошибку:

enter image description here

Если мы хотим сделать это преобразование, мы должны добавить 'DD' для строки, которую Гордон показал для вас.

Или, пожалуйста, не конвертируйте его в тип данных date, все еще используя тип данных varchar. Небольшое отличие от вашего запроса:

select concat (year(date),'-', month(date)) as MY, post_evar10, device_type, sum(pageviews) as pageviews, count(distinct uniquevisitors) as uniquevisitors
from temp.MS_Adobe_Discover1
group by MY, post_evar10, device_type
order by MY asc;

Надеюсь, это поможет.

0 голосов
/ 10 октября 2019

Если вы хотите конвертировать в дату в Sparksql:

select to_date(concat(year(date), '-', month(date), '-01')) as yyyymmdd,
       post_evar10, device_type,
       sum(pageviews) as pageviews, count(distinct uniquevisitors) as uniquevisitors
from temp.MS_Adobe_Discover1
group by yyyymmdd, post_evar10, device_type
order by yyyymmdd asc;
...