Преобразование времени эпохи Unix в расширенный ISO8601

У меня есть 3 таблицы, с которыми я хотел бы работать, используя дату, однако одна из таблиц включает дату в формате эпохи Unix. Вот пример 3 полей:

Table1: 2017-02-01T07:58:40.756031Z
Table2: 2017-02-07T10:16:46Z
Table3: 1489236559

Я хотел бы преобразовать дату в таблице 3, чтобы она максимально соответствовала формату таблицы 2. Вот что у меня сейчас:

SELECT cast(from_unixtime(tstart) as timestamp) as ISODATE from scada_logs

Это дает мне что-то невероятно близкое, но не совсем там. Вот что я получаю:

ISODATE
2017-03-20 14:31:06.000
2017-03-20 14:31:06.000

Я играл с этим в течение нескольких часов, но я не становлюсь ближе. У кого-нибудь есть какие-либо идеи?

Спасибо!

1 ответ

Решение

Вариант 1: дата_формат

presto> select date_format(from_unixtime(1489236559),'%Y-%m-%dT%H:%i:%sZ');
        _col0
----------------------
 2017-03-11T12:49:19Z

Вариант 2: to_iso8601

presto> select to_iso8601(from_unixtime(1489236559));
          _col0
--------------------------
 2017-03-11T12:49:19.000Z
Другие вопросы по тегам