В SQL Как конвертировать время в метку времени UNIX - PullRequest
0 голосов
/ 02 ноября 2018

В улье есть некоторые данные, которые у меня есть. Теперь я хочу преобразовать start_timestamp в unix_timestamp в секунду. Как это сделать? Потому что start_timestamp имеет два формата:

Первый формат:

    2018-03-22 02:54:35

Второй формат:

    May 15 2018  5:15PM

1 Ответ

0 голосов
/ 03 ноября 2018

Первый формат 'yyyy-MM-dd HH:mm:ss', второй 'MMM dd yyyy hh:mm:aa'. Если формат неправильный, функция unix_timestamp вернет NULL. Попробуйте преобразовать, используя один формат, если NULL, попробуйте преобразовать, используя другой формат. Это можно сделать с помощью функции coalesce:

select 
      coalesce(unix_timestamp(start_timestamp ,'yyyy-MM-dd HH:mm:ss'),
               unix_timestamp(start_timestamp ,'MMM dd yyyy hh:mm:aa')
              ) as UnixTimestamp
  from my_table;

Используйте from_unixtime(), чтобы преобразовать его в заданный формат, если необходимо, как в этом ответе .

См. Примеры шаблонов здесь: SimpleDateFormat

...