Hive unix_timestamp не распознает разницу между 12:07 и 00:07 и возвращает одинаковую метку времени Unix для обоих - PullRequest
1 голос
/ 26 марта 2019

hive to_unix_timestamp() функция не распознает 24-часовой формат и возвращает одно и то же значение в обоих случаях 12-го часа и нулевого часа.
Пример запроса ниже:

select to_unix_timestamp( '2019-01-22T12:07:00.000+0000',"yyyy-MM-dd'T'hh:mm:ss.SSSZ") 12thhour,to_unix_timestamp( '2019-01-22T00:07:00.000+0000',"yyyy-MM-dd'T'hh:mm:ss.SSSZ") zerohour;

12thhour          zerohour
1548115620        1548115620

select to_unix_timestamp( '2019-01-22T12:07:00',"yyyy-MM-dd'T'hh:mm:ss") as 12thhour ,to_unix_timestamp( '2019-01-22T00:07:00',"yyyy-MM-dd'T'hh:mm:ss") as Zerohour ;

12thhour          zerohour
1548112020       1548112020

1 Ответ

0 голосов
/ 26 марта 2019

Используйте шаблон 'HH' для формата 24 часа. Строчные 'hh' для 12 часов.

Формат теста 24 часа:

hive>  select unix_timestamp( '2019-01-22T12:07:00.000+0000',"yyyy-MM-dd'T'HH:mm:ss.SSSZ"), unix_timestamp( '2019-01-22T00:07:00.000+0000',"yyyy-MM-dd'T'HH:mm:ss.SSSZ") zerohour;
OK
1548158820      1548115620

Тест 12 часов формат:

hive>  select unix_timestamp( '2019-01-22T12:07:00.000+0000',"yyyy-MM-dd'T'hh:mm:ss.SSSZ"), unix_timestamp( '2019-01-22T00:07:00.000+0000',"yyyy-MM-dd'T'hh:mm:ss.SSSZ") zerohour;
OK
1548115620      1548115620

Читайте о шаблонах здесь: simpleDateFormat

...