如何在铸造轮廓中将Unix时间戳转换为日期?

问题描述

Foundry Contour表和列编辑器使解析包含年,月和日的某种字符串作为日期的字符串变得容易,但是我仍无法弄清楚如何转换代表Unix时间戳的Long。约会。

我缺少一些技巧吗?我尝试过CAST(utc_column AS date),这会导致错误,并且我尝试了“解析日期”,但是似乎只有包含年,月,日工作组合的字符串才能实现。

解决方法

您不能直接将long转换为日期,但是可以将其转换为时间戳。如果您特别想要日期而不是时间戳,则可以将其转换为日期。

需要注意的是,Spark假设您要转换为时间戳的时间是从纪元开始的秒数,而不是从纪元开始的毫秒数。

结果,最终查询可能必须类似于:

CAST(CAST((utc_column) AS TIMESTAMP) AS DATE)

CAST(CAST((utc_column / 1000) AS TIMESTAMP) AS DATE)

取决于基础Unix时间戳的缩放比例。这是Spark的基本功能,Palantir团队正在研究改善这种铸造体验的方法。