Как изменить формат даты в улье?



В моей таблице в hive есть файл даты в формате '2016/06/01'. но я нахожу, что это не в ущерб формату "2016-06-01".
Они не могут сравнивать, например.
Оба они-струны .
Поэтому я хочу знать, как сделать их в хармори и могу сравнить их. Или, с другой стороны, как изменить "2016/06/01" на "2016-06-01", чтобы их можно было сравнить.



Большое спасибо.

647   2  

2 ответов:

Для преобразования строки даты из одного формата в другой необходимо использовать функцию двух дат hive

  1. unix_timestamp(string date, string pattern) преобразование строки времени с заданным шаблоном к метке времени unix (в секундах), возвращает 0, если потерпеть неудачу.
  2. from_unixtime(bigint unixtime[, string format]) преобразует количество секунд от Unix epoch (1970-01-01 00: 00: 00 UTC) до a строка, представляющая метку времени этого момента в текущем системный часовой пояс.

Используя вышеуказанные две функции, вы можете достичь желаемого результата.

Пример входных данных и выход можно увидеть снизу изображения: Введите описание изображения здесь

Последний запрос -

select from_unixtime(unix_timestamp('2016/06/01','yyyy/MM/dd'),'yyyy-MM-dd') from table1; 

Где table1-имя таблицы, присутствующее в моей базе данных hive.

Я надеюсь, что это поможет вам!!!

Использование:

unix_timestamp(DATE_COLUMN, string pattern)

Приведенная выше команда поможет преобразовать дату в формат unix timestamp, который вы можете форматировать по своему усмотрению, используя простую функцию даты .

Функция Даты

Comments

    Ничего не найдено.