Данные Hadoop - конвертируйте метку времени Стинга в дату Hadoop в SQL Assistant - PullRequest
0 голосов
/ 03 июля 2018

У меня есть поля Имя | ID | Отметка

Временная метка представляет собой строку типа '06 / 29/2000 00:00:00 ' Теперь мне нужно отфильтровать таблицу по дате - скажем,

    Select Name
           ,ID
           ,Timestamp
   From Table Where **Function**(Timestamp)= '2000-06-29' (or 2000/06/29 or 06/29/2000)         

Я использую помощника SQL в качестве инструмента пользовательского интерфейса с Hadoop HI Я пробовал TO_DATE и пару других функций. Пожалуйста, сообщите

Ответы [ 3 ]

0 голосов
/ 04 июля 2018

Сначала вы можете изменить формат отметки времени и применить функцию to_date, чтобы обрезать время по отметке времени.

Вы можете преобразовать формат отметки времени, как показано ниже.

select from_unixtime(unix_timestamp('06/29/2000 00:00:00' ,'dd/MM/yyyy HH:mm:SS'), 'yyyy-MM-dd HH:mm:SS') from table;

Применить функцию to_date к вышеуказанному sql.

Select Name
           ,ID
           ,Timestamp
   From Table Where to_date(from_unixtime(unix_timestamp('06/29/2000 00:00:00' ,'dd/MM/yyyy HH:mm:SS'), 'yyyy-MM-dd HH:mm:SS'))= '2000-06-29'

Я не пробовал вышеуказанное решение, так как сейчас у меня нет среды. Дайте мне знать, если вы столкнулись с какими-либо ошибками.

0 голосов
/ 13 июля 2018

Это помогло мне, и мы все еще можем поиграть:

Select Name ,ID ,Timestamp From Table Where TO_DATE(from_unixtime(unix_timestamp(Timestamp,'MM/dd/yyyy HH:m:ss'),'yyyy-MM-dd'))>= '2018-07-10'

0 голосов
/ 03 июля 2018

Вы говорите, что отметка времени как строка? Вы пытались сравнить строки?

Select Name
       ,ID
       ,Timestamp
From Table 
where SUBSTR(Timestamp, 1, 10) = '06/29/2000'
...