SSIS 如何将源文件中 yyyymmdd 格式的大小为 8 的日期数据类型转换为 yyyy-mm-dd

问题描述 投票:0回答:1

我正在尝试使用 SSIS 包将数据加载到 SQL 表。文本文件的日期列格式为 yyyymmdd,SQL 表的数据类型设置为日期(必须保留为日期),但是当我使用派生列进行转换时,它不断抛出错误。

我尝试过使用以下方法: (DT_DBTIMESTAMP)(SUBSTRING([DATE_Column1,4) + "-" + SUBSTRING([DATE_Column],5,2) + "-" + SUBSTRING([DATE_Column],7,2))。但是,它不起作用。

不断抛出错误,例如“尝试进行类型转换时发生错误。

文本文件示例: enter image description here

我已经尝试了所有类型转换的变体来转换为派生列中的日期字段。它的日期列可能有空值或空白值 - 我只是不知道如何解释这一点。任何见解、帮助将不胜感激。

ssis package derived-column
1个回答
0
投票

您的表达式中似乎缺少括号和逗号。 尝试:

(DT_DBTIMESTAMP)(SUBSTRING([DATE_Column],1,4) + "-" + SUBSTRING([DATE_Column],5,2) + "-" + SUBSTRING([DATE_Column],7,2))

为了清晰起见,已格式化:

(DT_DBTIMESTAMP)
    (
         SUBSTRING([DATE_Column], 1, 4)
         + "-" + 
         SUBSTRING([DATE_Column], 5, 2) 
         + "-" + 
         SUBSTRING([DATE_Column], 7, 2)
     )
© www.soinside.com 2019 - 2024. All rights reserved.