Получить подстроку в улье - PullRequest
       9

Получить подстроку в улье

0 голосов
/ 14 декабря 2018

Я пытаюсь получить подстроку строки из Hive.У меня есть такая строка: 2017-06-05 09: 06: 32.0

Я хочу получить первые две цифры часа, то есть 09. Я получаю весь час с помощью этой команды:

SELECT SUBSTR(hora,11) AS subhoras FROM axmugbcn18.bbdd WHERE hora =  '2017-06-05 09:06:32.0'

Результат команды: 09: 06: 32.0

Чтобы получить только 09, я пробую эту команду:

SELECT REGEXP_EXTRACT(hora,'\d\d') AS subhoras FROM axmugbcn18.bbdd WHERE hora = '2017-06-05 09:09:32.0'

, но результатыне заполнены.

Как я могу получить только две цифры часа?

Спасибо

Ответы [ 2 ]

0 голосов
/ 14 декабря 2018

Существует несколькими способами , которые можно извлечь hours из timestamp значения.

1.Использование функции подстроки:

select substring(string("2017-06-05 09:06:32.0"),12,2);
+------+--+
| _c0  |
+------+--+
| 09   |
+------+--+

2. Использование регулярного выражения_экстракт:

select regexp_Extract(string("2017-06-05 09:06:32.0"),"\\s(\\d\\d)",1);
+------+--+
| _c0  |
+------+--+
| 09   |
+------+--+

3. Использование часа:

select hour(timestamp("2017-06-05 09:06:32.0"));
+------+--+
| _c0  |
+------+--+
| 9    |
+------+--+

4.Использование from_unixtime:

select from_unixtime(unix_timestamp('2017-06-05 09:06:32.0'),'HH');
+------+--+
| _c0  |
+------+--+
| 09   |
+------+--+

5.Использование date_format:

select date_format(string('2017-06-05 09:06:32.0'),'hh');
+------+--+
| _c0  |
+------+--+
| 09   |
+------+--+

6.Использование разделения:

select split(split(string('2017-06-05 09:06:32.0'),' ')[1],':')[0];
+------+--+
| _c0  |
+------+--+
| 09   |
+------+--+
0 голосов
/ 14 декабря 2018

Попробуйте следующее:

select 
'2017-06-05 09:06:32.0' as t, 
hour('2017-06-05 09:06:32.0'),                               -- output: 9
from_unixtime(unix_timestamp('2017-06-05 09:06:32.0'),'HH')  -- output: 09
from table_name;

Вы можете попробовать hour или unixtimestamp, чтобы получить желаемый результат.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...