如何解决如何在雪花中以dd/mm/yyyy hh:mm的形式插入数据
我在源系统中的每个人的数据都是 'dd/mm/yyyy hh:mm' 所以我想在雪花中使用日期时间,但文档说格式是 'dd/mm/yyyy hh:mm:ss' 所以它给我一个错误说明
无法识别时间戳 '01/02/2009 04:53'
那么在这种情况下,如果源系统采用这种格式,我应该怎么做才能将数据存储在雪花中。
我发现的可能解决方案是: **
- 1:以固定长度的'varchar(x)'格式存储列的数据,即 可能是一个很好的解决方案,但是,还有其他存储方法吗? 将数据作为日期时间而不将其转换为“varchar(x)”。
- 2:varchar(x) 是长度为 'x' 的时间戳的数据类型,即 'dd/mm/yyyy hh:mm:ss'。
架构如下所示:
- 1:表的示例架构是
创建表 T1(ID INTEGER,TRANSACTION_DATE DATETIME) - 2:这是雪花数据类型手册的参考链接。 (https://docs.snowflake.com/en/sql-reference/data-types-datetime.html#datetime)
- 3:新手请见谅,如有错别字!提前致谢。 **
解决方法
您可以在加载数据时更改会话的时间戳输入格式:
create or replace table test_table (v datetime);
alter session set TIMESTAMP_INPUT_FORMAT='DD/MM/YYYY HH24:MI';
insert into test_table values ('01/02/2009 04:53'); -- works
TIMESTAMP_INPUT_FORMAT https://docs.snowflake.com/en/sql-reference/parameters.html#label-timestamp-input-format
或者你可以在你的复制命令中使用转换:
https://docs.snowflake.com/en/user-guide/data-load-transform.html#convert-data-types-during-a-load
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。