[英]How to convert UNIX epoch days to DATE in Snowflake?
我有一些值对应于自 Epoch 以来的天数,并希望将它们存储在 Snowflake 的 DATE 列中。
示例:33057
对应于 2060 年 7 月 4 日星期日
如果有人可以为我指出正确的雪花文档(如果开箱即用),那将非常有帮助
我认为这会奏效:
select dateadd(day, <your number> - 33057, '2060-07-04')
因此,对于“33057”的具体转换,这将是:
select dateadd(day, 33057 - 33057, '2060-07-04')
但它应该适用于任何整数。
TO_TIMESTAMP_x (numeric_expr) 正是您要找的。 如果你只想要日期部分,我会通过::DATE
截断
numeric_expr自 Unix 纪元 (1970-01-01 00:00:00 UTC) 开始以来的秒数(如果 scale = 0 或不存在)或几分之一秒(例如毫秒或纳秒)。 如果输入非整数十进制表达式,则结果的小数位数将被继承。
如果你有毫秒,你可以使用TO_TIMESTAMP_x(numeric_expr, scale)
形式
select to_timestamp(12334567) as t_from_s
,to_timestamp(12334567000, 3) as t_from_ms;
给
T_FROM_S T_FROM_MS
1970-05-23 18:16:07.000 1970-05-23 18:16:07.000
我们在所有用法中都使用_NTZ
变体,因为我们拥有来自服务器的所有 UTC 数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.