如何将表示 EPOCH 时间的整数转换为 Athena (Presto) 中的时间戳?
Posted
技术标签:
【中文标题】如何将表示 EPOCH 时间的整数转换为 Athena (Presto) 中的时间戳?【英文标题】:How can I convert an integer representing EPOCH time to a timestamp in Athena (Presto)? 【发布时间】:2019-10-01 00:55:25 【问题描述】:我有一个表,其中日期时间存储为 varchar,但代表 EPOCH 时间(例如 1556895150)。如何让该值被识别为 Athena 中的时间戳/使用 Presto?像 dateadd 函数这样的东西可以工作,但 Athena 没有 dateadd(我设想像 dateadd('second',expressoin,'1970-01-01 00:00:00')。一个简单的 CAST(expressoin as type)没有在这里工作,因为 EPOCH 不是公认的日期时间数据类型。
【问题讨论】:
【参考方案1】:你可以使用from_unixtime()
:
presto> select from_unixtime(1556895150);
_col0
-------------------------
2019-05-03 07:52:30.000
(1 row)
【讨论】:
不起作用,因为1556895150
存储为 varchar
在调用from_unixtime
之前将纪元转换为bigint:CAST(epoch as bigint)
以上是关于如何将表示 EPOCH 时间的整数转换为 Athena (Presto) 中的时间戳?的主要内容,如果未能解决你的问题,请参考以下文章
自Epoch以来如何将Pandas Timestamp转换为nano?
在Android中将Epoch时间转换为日期并将日期转换为Epoch时间[重复]