Foundry Contour 表和列编辑器可以轻松解析包含年、月和日的某种组合作为日期的字符串,但我无法弄清楚如何将表示 Unix 时间戳的 Long 转换为日期.
有什么我错过的技巧吗?我已经尝试过CAST(utc_column AS date)
,这会导致错误,并且我已经探索过“解析日期”,但似乎只有包含年、月和日的某种组合的字符串才有效。
Foundry Contour 表和列编辑器可以轻松解析包含年、月和日的某种组合作为日期的字符串,但我无法弄清楚如何将表示 Unix 时间戳的 Long 转换为日期.
有什么我错过的技巧吗?我已经尝试过CAST(utc_column AS date)
,这会导致错误,并且我已经探索过“解析日期”,但似乎只有包含年、月和日的某种组合的字符串才有效。
您不能直接将 long 转换为日期,但可以将它们转换为时间戳。如果您特别想要日期而不是时间戳,则可以转换为日期。
需要注意的是,Spark 假设您要转换为时间戳的 long 是自纪元以来的秒数,而不是自纪元以来的毫秒数。
因此,最终查询可能必须类似于:
CAST(CAST((utc_column) AS TIMESTAMP) AS DATE)
或者
CAST(CAST((utc_column / 1000) AS TIMESTAMP) AS DATE)
取决于底层 Unix 时间戳的缩放。这是 Spark 的一个潜在功能,Palantir 团队正在寻找方法来改善这种铸造的体验。