首页 > 解决方案 > 在 presto 中将 bigint 转换为时间戳

问题描述

我的数据集中有一列数据类型为 bigint:

Col1     Col2
   1     1519778444938790
   2     1520563808877450
   3     1519880608427160
   4     1520319586578960
   5     1519999133096120

如何将 Col2 转换为以下格式:

年-月-日 hr:mm:ss

我不确定我当前列的格式是什么,但我知道它应该是时间戳。

任何帮助都会很棒,谢谢!

标签: datetimetimestampbigintpresto

解决方案


您是否尝试过使用类似的功能from_unixtime?您可以使用它将 unix 时间转换为时间戳,然后您可以使用date_format它以您想要的方式显示它。请注意,在您的示例中,您的 unix 时间以微秒为单位,因此您可能希望先将其转换为毫秒。

我尚未对此进行测试,但我假设您的代码应如下所示:

date_format(from_unixtime(col2/1000), '%Y-%m-%d %h:%i:%s')

请注意,它from_unixtime也接受时区。

请访问此页面以查看有关日期相关功能的更多详细信息:https ://docs.starburstdata.com/latest/functions/datetime.html


推荐阅读