如何将UNIX日期转换为雪花中的指定日期?

时间:2020-09-07 01:07:23

标签: sql datetime format snowflake-cloud-data-platform

如何将unix日期转换为雪花中下面提到的指定日期

unix日期= 96227预期输出= 1996-08-14

我尝试在雪花中使用以下查询

select cast(to_timestamp(1900000+96227) as date) as "effDate"

但是上面的查询和在线的unix转换器都给我以下结果-

enter image description here

我怎样才能在雪花中构造一个查询,使我得到1996-08-14的数据,在转换时应该加上多少?

2 个答案:

答案 0 :(得分:2)

使用Gordon的答案,可能更易于管理,请使用以下内容:

Set UNIX_DATE='96227';
Select DATEADD(day,RIGHT($UNIX_DATE,3)-1,TRY_TO_DATE(LEFT($UNIX_DATE,2),'YY'));

注意:两位数年份,由TWO_DIGIT_CENTURY_START会话参数控制,默认值为1970,与Unix时代相符。

答案 1 :(得分:1)

您的数据格式似乎采用YYDDD格式,其中YY为年份减去1900,而DDD为年份。

所以:

select date_from_parts(1900 + d / 1000, 1, 1) + (d % 1000 - 1) * interval '1 day'
from (values (96227)) v(d);
相关问题