如何在snowflake中插入dd/mm/yyyyhh:mm形式的数据
How to insert data in the form of dd/mm/yyyy hh:mm in snowflake
Everyone 我在源系统中的数据为'dd/mm/yyyy hh:mm' 所以我想在雪花中使用日期时间,但文档说格式是 'dd/mm/yyyy hh:mm:ss' 所以它抛出一个错误说明
Timestamp '01/02/2009 04:53' is not recognized
所以在这种情况下,如果源系统采用这种格式,我应该怎么做才能将数据存储在雪花中。
我发现的可能解决方案是:
**
- 1:以'varchar(x)'格式定长存储该列的数据,即
可能是一个很好的解决方案,但是还有其他替代方法可以存储吗
数据作为日期时间而不将其转换为 'varchar(x)'.
- 2: varchar(x) 是长度为 'x' 的时间戳的数据类型,即 'dd/mm/yyyy hh:mm:ss'.
架构如下所示:
- 1:table 的示例架构是
创建 TABLE T1(ID 整数,TRANSACTION_DATE 日期时间)
- 2:这里是link供参考,雪花数据类型手册。
(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
Everyone 我在源系统中的数据为'dd/mm/yyyy hh:mm' 所以我想在雪花中使用日期时间,但文档说格式是 'dd/mm/yyyy hh:mm:ss' 所以它抛出一个错误说明
Timestamp '01/02/2009 04:53' is not recognized
所以在这种情况下,如果源系统采用这种格式,我应该怎么做才能将数据存储在雪花中。
我发现的可能解决方案是: **
- 1:以'varchar(x)'格式定长存储该列的数据,即 可能是一个很好的解决方案,但是还有其他替代方法可以存储吗 数据作为日期时间而不将其转换为 'varchar(x)'.
- 2: varchar(x) 是长度为 'x' 的时间戳的数据类型,即 'dd/mm/yyyy hh:mm:ss'.
架构如下所示:
- 1:table 的示例架构是
创建 TABLE T1(ID 整数,TRANSACTION_DATE 日期时间) - 2:这里是link供参考,雪花数据类型手册。 (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