如何将unix日期转换为雪花中下面提到的指定日期
unix日期= 96227预期输出= 1996-08-14
我尝试在雪花中使用以下查询
select cast(to_timestamp(1900000+96227) as date) as "effDate"
但是上面的查询和在线的unix转换器都给我以下结果-
我怎样才能在雪花中构造一个查询,使我得到1996-08-14的数据,在转换时应该加上多少?
答案 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);