SSIS 将字符串转换为日期

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

我是 SSIS 新手,一直在尝试将字符串转换为日期。 我的输入列字符串的格式为 MM.DD.yy 10.11.16 我的要求是转换 2016-10-11 yyyy-mm-dd

下面是我尝试过的表达式,但它在目标中加载为空。

(DT_DATE)(SUBSTRING(FILE_DATE,1,2) + "-" + 
SUBSTRING(FILE_DATE,4,2) + "-" + SUBSTRING(FILE_DATE,7,2))

ssis expression
2个回答
0
投票

第一种方法

在 DataFlowTask 中,在 Source 和 Destination 之间添加脚本组件

检查

FILE_DATE
作为输入并创建列
outFILE_DATE
(类型:DT_DATE)作为输出

在脚本窗口中添加以下代码

Row.outFILEDATE = DATETIME.ParseExact(Row.FILEDATE,"MM.DD.yy",New System.Globalization.CultureInfo("En-GB"))

并将

outFILE_DATE
映射到目标列

第二种方法

使用这个表达:

(DT_DATE)("20" + SUBSTRING(FILE_DATE,7,2) + "-" + SUBSTRING(FILE_DATE,4,2) + "-" + SUBSTRING(FILE_DATE,1,2) )

仅当年份 >= 2000 时才有效


0
投票

在许多情况下,日期字段来自 Excel 或 CSV 文件 - 不要对日期使用任何数据转换对象转换 - 只需在文件源中进行转换

© www.soinside.com 2019 - 2024. All rights reserved.