2016-06-01 6 views
6

Мой стол в улье имеет регистрацию даты в формате '2016/06/01'. но я считаю, что это не соответствует формату '2016-06-01'. Они не могут сравниться, например. Оба они являются строками. Так что я хочу знать, как сделать их в гармонии и сравнить их. Или, с другой стороны, как изменить «2016/06/01» на «2016-06-01», чтобы их можно было сравнить.Как изменить формат даты в улье?

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

+0

Хороший вопрос включает информацию о том, что вы пытались решить проблему. Этот вопрос не показывает каких-либо исследовательских усилий - даже не Googling «изменить формат даты в улье» - так что это действительно не должно привлекать ответчиков. – Noumenon

+1

@Noumenon вы могли бы предоставить ссылку, http://www.cloudera.com/documentation/cdh/5-1-x/Impala/Installing-and-Using-Impala/ciiu_datetime_functions.html –

ответ

10

Чтобы преобразовать строку даты из одного формата в другой, вы должны использовать две даты функции улья

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

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

Входной и выходной образец может быть видно из ниже изображения: enter image description here

Окончательный запрос

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

, где таблица1 это имя таблицы присутствует в моей базе данных улья.

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

2

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

unix_timestamp(DATE_COLUMN, string pattern) 

Приведенная выше команда поможет преобразовать дату в формате Отметка времени Unix, который вы можете форматировать, как вы хотите с помощью Simple Date Function.

Date Function

Смежные вопросы