2016-03-07 2 views
0

Я не получаю ожидаемый результат от UNIX_TIMESTAMP из ульяHive Отметка времени Unix

Например:

select FROM_UNIXTIME(UNIX_TIMESTAMP('2015/02/01', 'YYYY/MM/DD')) from table limit 1; 

ВЫВОД:

2014-12-28 00:00:00 
Time taken: 0.287 seconds, Fetched: 1 row(s) 

Я ожидал, что он вернется 2015-02 -01, но это привело к чему-то еще. Насколько я понимаю, из-за эпохи?

+0

Это результат уже дан в: http://stackoverflow.com/questions/28884963/hive-unix-timestamp-quandary?rq=1 – user3279189

ответ

1

У вас есть все колпачки в вашем формате даты. Попробуйте это с помощью нижнего регистра:

select from_unixtime(unix_timestamp('12/02/01','yyyy/MM/dd') from table; 

Результаты в: 2015-02-01 00:00:00

Также вы можете сдирать время использования:

to_date(from_unixtime(unix_timestamp('12/02/01','yyyy/MM/dd')) 

Результаты в: 2015-02-01

-1
select FROM_UNIXTIME(UNIX_TIMESTAMP('2015/02/01')) 

Используйте этот запрос, чтобы получить анс, как 2015-02-01 00:00:00

Спасибо.

+0

Он возвращает NULL – user3279189

+0

Вы можете попробовать с этим 'select FROM_UNIXTIME (UNIX_TIMESTAMP ('2015/02/01 00:00:00')) – dinesh

0

Вы также можете использовать функцию substr(). работает повсюду, если вам не нужно сравнивать его с другой переменной времени/константой.

Смежные вопросы