#hive #timestamp #hiveql #utc #unix-timestamp
#улей #временная метка #hiveql #utc #unix-timestamp #hive
Вопрос:
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:
Используйте '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