雪花 -> 如何将日期(时间戳)从阶段插入到表中?



雪花->如何插入日期(时间戳)从一个阶段到一个表?

例如:我有以下平面文件

FILE.CSV
ID; DATE ; TEXT
6908402;16-06-2022 13:28:52;DAWEAWEADA
6908403;16-06-2022 ; asdasda
6908404;16-06-2022 13:28:53;helloTest
6908405;16-06-2022 13:28:54;hello%%$%
6908406;16-06-2022 13:28:55;

创建包含

文件的格式
CREATE OR REPLACE FILE FORMAT DBO.CSV_SEMICOLON
type = 'CSV'
field_delimiter = ';'
skip_header = 1
encoding=UTF8   
;

我将格式分配给新阶段

CREATE STAGE IF NOT EXISTS DBO.STG_FILE file_format = DBO.CSV_SEMICOLON;

我将信息插入到舞台

REMOVE  @STG_FILE;
put file://D:TESTFILE.CSV @STG_FILE;

将信息插入到@stage_file后,我想将信息插入到表中。

这就是我遇到问题的地方,因为来自文件的阶段的$2列可以只是日期或时间,我不知道该怎么插入

这个值目标字段的定义如下

Table : dbo.T_FILE
ID = VARCHAR(255)
DATE = TIMESTAMPNTZ
TEXT = VARCHAR(5000)
-------------
-INSERT TABLE
-------------
INSERT INTO DBO.T_FILE(ID, "DATE", TEXT)
SELECT $1, $2, $3, 
FROM @STG_FILE WHERE $3 <> ''

非常感谢您的建议

目标表

create temporary table T_FILE (id varchar(255), date_1 TIMESTAMPNTZ, text_1 VARCHAR(5000))

下面查询-

insert into T_FILE select $1,COALESCE(TRY_TO_TIMESTAMP_LTZ($2,'DD-MM-YYYY HH24:MI:SS'),try_TO_TIMESTAMP_LTZ
($2,'dd-mm-yyyy')),$3 from @stg_file;

将插入以下-

select * from t_file;
<表类>IDDATE_1TEXT_1tbody><<tr>69084022022-06-16 13:28:52.000DAWEAWEADA69084032022-06-16 00:00:00.000asdasda69084042022-06-16 13:28:53.000helloTest69084052022-06-16 13:28:54.000你好% % $ %69084062022-06-16 13:28:55.000空

相关内容

  • 没有找到相关文章