Разделите дату и сохраните дату, месяц, год в разных столбцах - PullRequest
1 голос
/ 18 октября 2019

вход

10-01-2019    

20-02-2019

22-03-2019

выход

Date     Month              Year 

10       January            2019    

20       February           2019

30       March              2019

Ответы [ 3 ]

2 голосов
/ 18 октября 2019

Использование split ():

with your_data as(
select stack(3,'10-01-2019',   
               '20-02-2019',
               '22-03-2019'
        ) as dt
) --use your table instead of this

select dt[0] as day,
       dt[1] as month,
       dt[2] as year
from ( select split(dt,'-') as dt from your_data )s;

Результат:

OK
day     month   year
10      01      2019
20      02      2019
22      03      2019
Time taken: 0.081 seconds, Fetched: 3 row(s)
1 голос
/ 18 октября 2019

Нам нужно использовать from_unixtime and unix_timestamp функции для разбора даты.

Затем split the field в subquery и извлечение даты, месяца, года ..

Example:

hive> select dt[0] day,dt[1] month,dt[2] year from( 
            select split(from_unixtime(unix_timestamp("10-01-2019",'dd-MM-yyyy'),'dd-MMMM-yyyy'),'-')dt
)e;

Result:

day     month   year
10      January 2019
0 голосов
/ 18 октября 2019

Попробуйте это

with t as ( select  unix_timestamp('10-01-2019' , 'dd-MM-yyyy') as dt )
select from_unixtime(dt,'dd')  as Date,
       from_unixtime(dt,'MMMM')  as Month,
       from_unixtime(dt,'YYYY')  as Year
 from t;

Результат

Total MapReduce CPU Time Spent: 2 seconds 720 msec
OK
10  January 2019
Time taken: 23.206 seconds, Fetched: 1 row(s)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...