如何在Athena(Presto)中将表示EPOCH时间的整数转换为时间戳?

4

我有一张表,其中日期时间以 varchar 格式存储,但代表 EPOCH 时间(例如 1556895150)。如何使 Athena / Presto 能够将该值识别为时间戳?类似于 dateadd 函数的东西会起作用,但是 Athena 没有 dateadd 函数。(我想象中类似于 dateadd('second', expression, '1970-01-01 00:00:00')的函数。一个简单的 CAST(expression as type) 在这里不起作用,因为 EPOCH 不是被认可的日期时间数据类型。

1个回答

8
您可以使用 from_unixtime() 函数来实现:
presto> select from_unixtime(1556895150);
          _col0
-------------------------
 2019-05-03 07:52:30.000
(1 row)

无法正常工作,因为 1556895150 被存储为 varchar。 - Jeanette Kim
1
在调用 from_unixtime 之前,只需将时代转换为 bigint:CAST(epoch as bigint) - Martin Traverso

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接