Я использую Hive 1.2.1000.
Я на самом деле имею дело с преобразованием в Unix Timestamp Я пытаюсь конвертировать дату в формате:
дд / мм / гггг чч: мм: сс
в unix_timestamp, следовательно:
unix_timestamp (дата, "дд-мм-гггг чч: мм: сс")
были использованы.
Точнее, я запустил следующий код:
выберите '09 / 06/2012 04:02:32 ', regexp_replace ('09 / 06/2012 04:02:32', "/", "-")
, который, кажется, работает, на самом деле результат: 1326081752
Я также заметил, что у меня есть N отличных дат, и различное на unix_timestamp этих дат составляет M с M .
Делая некоторые манипуляции с данными, я видел, что есть разные даты с одинаковым unix_timestamp.
Поэтому я попытался пойти глубже и нашел много дат, например
09/06/2012 04:02:32
и
09/12/2012 04:02:32
Теперь, если я попытаюсь запустить следующий код:
select
'09/06/2012 04:02:32',
regexp_replace('09/06/2012 04:02:32',"/","-"),
unix_timestamp(regexp_replace('09/06/2012 04:02:32',"/","-"),"dd-mm-yyyy hh:mm:ss"),
unix_timestamp('09-06-2012 04:02:32',"dd-mm-yyyy hh:mm:ss")
UNION ALL
select '09/12/2012 04:02:32',
regexp_replace('09/12/2012 04:02:32',"/","-"),
unix_timestamp(regexp_replace('09/12/2012 04:02:32',"/","-"),"dd-mm-yyyy hh:mm:ss"),
unix_timestamp('09-12-2012 04:02:32',"dd-mm-yyyy hh:mm:ss")
Это вывод:
09/06/2012 04:02:32 09-06-2012 04:02:32 1326081752 1326081752 1326081752
09/12/2012 04:02:32 09-12-2012 04:02:32 1326081752 1326081752 1326081752
Что одно и то же.
Этот результат может быть распространен на все даты, в которых все идентично, кроме одного между dd и мм .
Не могли бы вы объяснить, почему?
Заранее спасибо,
Manuel
Ps. Я также пробовал с датами в другом формате, например:
select '2012-06-09 04:02:32', unix_timestamp(regexp_replace('2012-06-09 04:02:32',"/","-"),"yyyy-mm-dd hh:mm:ss")
UNION ALL
select '2012-12-09 04:02:32', unix_timestamp(regexp_replace('2012-12-09 04:02:32',"/","-"),"yyyy-mm-dd hh:mm:ss")
Но результат тот же.