Как я могу вычесть 2 столбца временной метки в куст и сохранить результат в отдельном столбце в формате эквивалентных часов?Операции с меткой времени в кусте
ответ
Скажем, если у вас есть метку времени в данном формате: 2016-10-16 10: 51: 00.000
Вы можете попробовать следующее:
SELECT
cast(
round(
cast((e-s) as double) * 1000
) as int
) time_difference
FROM (SELECT cast(starttime as double) s, cast(endtime as double) e from table1) q;
Это даст вам разницу обе отметки времени в миллисекундах. Затем вы можете преобразовать его в ожидаемый формат (часы, дни и т. Д.).
Это дает мне ошибка, говорящая ** Отсутствующий ключевой слово ** после функции броска –
Надеюсь, вы переименовали столбцы в соответствии с схемой. Не могли бы вы рассказать всю ошибку, которую вы получаете? –
обновил запрос. Можете ли вы попробовать сейчас? –
Используйте функцию unix_timestamp, чтобы преобразовать временную метку улья в несколько секунд с эпохи. Вычитание результатов timestemp unix дает ответ в секундах.
SELECT start_dttm,
(unix_timestamp(end_dttm) - unix_timestamp(start_dttm))/60 AS duration_in_minutes
FROM dev_edw.audit_history_hb
WHERE script_name LIKE '%0_hive_d%'
AND parent_audit_id is null
ORDER BY start_dttm desc
Я в основном имеют 2 колонки: ** Дата_начала ** и ** дата_окончания ** в таблице в улье, и я хочу, чтобы заполнить новый столбец с именем ** elapsed_hours **, запустив DML –