Snowflake cloud data platform 转换';日期';以整数(自1970年1月1日起的天数)形式存储在Avro中,保存到Snowflake';日期';类型

Snowflake cloud data platform 转换';日期';以整数(自1970年1月1日起的天数)形式存储在Avro中,保存到Snowflake';日期';类型,snowflake-cloud-data-platform,Snowflake Cloud Data Platform,我需要将数据从一些本地数据库迁移到云。表中的一些数据以yyyy-mm-dd格式存储为“日期” 我们正在将存储在表中的数据转换为Avro格式,然后将其复制到Snowflake中 在Avro中,日期存储为整数 当我试图将数据推送到snowflake时,它无法将该整数转换回日期。我收到以下错误:“未能对迄今为止的变体13707进行装箱” 其中13707是自1970年1月1日起的天数 谢谢 如果输入参数的格式是包含整数的字符串: 字符串转换为整数后,整数将被视为Unix纪元(1970-01-01 00:

我需要将数据从一些本地数据库迁移到云。表中的一些数据以yyyy-mm-dd格式存储为“日期”

我们正在将存储在表中的数据转换为Avro格式,然后将其复制到Snowflake中

在Avro中,日期存储为整数

当我试图将数据推送到snowflake时,它无法将该整数转换回日期。我收到以下错误:“未能对迄今为止的变体13707进行装箱”

其中13707是自1970年1月1日起的天数


谢谢

如果输入参数的格式是包含整数的字符串:

字符串转换为整数后,整数将被视为Unix纪元(1970-01-01 00:00:00.000000000 UTC)开始后的秒数、毫秒数、微秒数或纳秒数

如果整数小于31536000000(一年中的毫秒数),则该值将被视为秒数

如果该值大于或等于31536000000且小于31536000000000,则该值将被视为毫秒

如果该值大于或等于31536000000000且小于31536000000000,则该值将被视为微秒

如果该值大于或等于315360000000,则该值将被视为纳秒

如果计算了多行(例如,如果输入是包含两行以上的表的列名),则第一个处理的值确定是否将所有后续值视为秒、毫秒、微秒或纳秒


如果第一个值大于或等于31536000000,则所有值都将被视为毫秒,即使某些剩余值小于31536000000。类似的逻辑适用于微秒和纳秒。

如果输入参数的格式是包含整数的字符串:

字符串转换为整数后,整数将被视为Unix纪元(1970-01-01 00:00:00.000000000 UTC)开始后的秒数、毫秒数、微秒数或纳秒数

如果整数小于31536000000(一年中的毫秒数),则该值将被视为秒数

如果该值大于或等于31536000000且小于31536000000000,则该值将被视为毫秒

如果该值大于或等于31536000000000且小于31536000000000,则该值将被视为微秒

如果该值大于或等于315360000000,则该值将被视为纳秒

如果计算了多行(例如,如果输入是包含两行以上的表的列名),则第一个处理的值确定是否将所有后续值视为秒、毫秒、微秒或纳秒


如果第一个值大于或等于31536000000,则所有值都将被视为毫秒,即使某些剩余值小于31536000000。类似的逻辑适用于微秒和纳秒。

您需要根据变量值计算日期值。为此,您可以使用DATEADD:


您需要根据变量值计算日期值。为此,您可以使用DATEADD:


日期是否存储在变量列中?Snowflake中定义的列是什么类型的?转换是如何完成的?您有一个例子吗?@Sergui我尝试作为查询插入:插入到“dbname”、“schemaname”、“tablename”(开始日期)值(截止日期(13707));开始日期的类型为“日期”,是存储在变量列中的日期吗?Snowflake中定义的列是什么类型的?转换是如何完成的?您有一个例子吗?@Sergui我尝试作为查询插入:插入到“dbname”、“schemaname”、“tablename”(开始日期)值(截止日期(13707));开始日期的类型为'date',如果要作为unix时间戳插入,则上述逻辑将起作用。但是,如果我尝试以从epoch开始算起的天数插入,则不会这样做。但,若我尝试插入自新纪元开始以来的天数,它不会。
create table avro_test ( x date );

insert into avro_test(x) 
select  dateadd('day',parse_json('13707'),'1970-01-01');

select * from avro_test;

+------------+
|     X      |
+------------+
| 2007-07-13 |
+------------+