将Unix纪元时间转换为扩展的ISO8601

Kel*_*ton 3 datetime hadoop presto amazon-athena

我有3个表我想使用日期,但其中一个表包括unix epoch格式的日期.以下是3个字段的示例:

Table1: 2017-02-01T07:58:40.756031Z
Table2: 2017-02-07T10:16:46Z
Table3: 1489236559
Run Code Online (Sandbox Code Playgroud)

我想转换表3中的日期以尽可能地匹配表2的格式.这就是我现在所拥有的:

SELECT cast(from_unixtime(tstart) as timestamp) as ISODATE from scada_logs
Run Code Online (Sandbox Code Playgroud)

这给了我一些非常接近的东西,但并不完全在那里.这是我得到的:

ISODATE
2017-03-20 14:31:06.000
2017-03-20 14:31:06.000
Run Code Online (Sandbox Code Playgroud)

我已经玩了几个小时,但我没有接近.有没有人有任何想法?

谢谢!

Dav*_*itz 11

选项1:date_format

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

选项2:to_iso8601

presto> select to_iso8601(from_unixtime(1489236559));
          _col0
--------------------------
 2017-03-11T12:49:19.000Z
Run Code Online (Sandbox Code Playgroud)