Улей - месяц и год из столбца метки времени

Привет, я пытаюсь извлечь часть месяца и года из столбца метки времени в улье, используя приведенный ниже запрос.

select from_unixtime(unix_timestamp(upd_gmt_ts,'yyyyMM')) from  abc.test;

Вывод выглядит как 2016-05-20 01:08:48

желаемый результат должен быть 201605

Цените любые предложения.


person divyanair    schedule 10.01.2017    source источник
comment
проверьте это select date_format(upd_gmt_ts,'yyyyMM') from abc.test;   -  person mrsrinivas    schedule 10.01.2017


Ответы (4)


Я бы предпочел использовать Hive date_format() ( начиная с Hive 1.2.0). Он поддерживает шаблоны Java SimpleDateFormat.

date_format() принимает date/timestamp/string. Таким образом, ваш окончательный запрос будет

select date_format(upd_gmt_ts,'yyyyMM') from abc.test;

Изменить:

SimpleDateFormat примеры допустимых шаблонов.

введите здесь описание изображения

person mrsrinivas    schedule 10.01.2017

Вы можете использовать CONCAT и FROM_UNIXTIME, как показано ниже:

SELECT CONCAT(YEAR(FROM_UNIXTIME(1468215093)), MONTH(FROM_UNIXTIME(1468215093))) AS YEAR_MONTH

В вашем запросе:

SELECT CONCAT(YEAR(FROM_UNIXTIME(upd_gmt_ts)), MONTH(FROM_UNIXTIME(upd_gmt_ts))) AS YEAR_MONTH
FROM abc.test;
person Pathik Vejani    schedule 10.01.2017
comment
Спасибо за запрос ... но это дало мне semanticException. не сработало, как ожидалось.. - person divyanair; 10.01.2017
comment
FAILED: SemanticException [Ошибка 10014]: Строка 1:19 Неправильные аргументы 'upd_gmt_ts': Нет метода сопоставления для класса org.apache.hadoop.hive.ql.udf.UDFFromUnixTime с (временной меткой). Возможные варианты: _FUNC_(большой) _FUNC_(большой, строка) _FUNC_(целое) _FUNC_(целое, строка) - person divyanair; 10.01.2017
comment
upd_gmt_ts значение вашей метки времени? - person Pathik Vejani; 10.01.2017

Пожалуйста, используйте следующий запрос

SELECT YEAR(FROM_UNIXTIME(unix_timestamp()))*100 + MONTH(FROM_UNIXTIME(unix_timestamp()))
person GauravS    schedule 09.06.2017

Чтобы увидеть дату в формате yyyy-mm-dd hh:mm:ss, вы можете использовать ее, как показано ниже:

select to_utc_timestamp(col_name, 'PST') * from table;
person Ramesh babu M    schedule 10.07.2017