微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在雪花日期数据类型字段中插入儒略日期

如何解决如何在雪花日期数据类型字段中插入儒略日期

我的数据采用以下格式(朱利安):

2020102 2019134

“雪花”中的数据类型是此字段的“日期”。如何使用“复制命令”将其插入SNowflake。

我在下面考虑,但是我还没有找到朱利安的日期格式。 复制到Table * col1,col2)(从$%Table中选择$ 1,TO_DATE($ 2,'format')

解决方法

雪花目前不支持儒略日期格式,但是您可以使用表达式将其转换为日期。 COPY目前尚不支持所有功能,但是您可以从舞台上使用INSERT + SELECT来完成。这是一个简单的示例:

COPY INTO @~/test
FROM
  (SELECT $1 FROM
   VALUES (2020102),(2019134))
;


CREATE OR REPLACE TABLE t1 (juldate int,caldate date);


INSERT INTO t1
SELECT $1,(left($1,4)||'-01-01')::date + right($1,3)::integer - 1
FROM @~/test;


SELECT *
FROM t1;

JULDATE CALDATE
2020102 2020-04-11
2019134 2019-05-14
,

雪花没有内置的儒略日期转换器,我也不认为您提供的值实际上是儒略日期,因为格式通常没有4位数字的年份,我不认为。无论哪种方式,您都需要进行一些解析和添加日期。这样的事情可能会奏效,尽管我不确定100%是否能确定预期的结果:

with x as (
    SELECT '2020102' as julian
  )
SELECT DATEADD(days,SUBSTRING(julian,5,3)::number-1,(SUBSTRING(julian,1,4)||'-01-01')::DATE)
FROM x;

这似乎可行,但又不是100%确定。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。