2

我有一个包含 2 列的平面文件。一个是这种格式的日期时间

2017-11-06T11:16:08 AM GMT

和以这种格式存储的另一列总计值

£39.00.

目的地是 OLEDB (ms sql),

Column 1 is Datetime and column 2 is Int in the destination 

使用派生列的数据转换SSIS未返回列 1(日期)所需的输出

PS:目标数据类型不能更改

在此处输入图像描述

FlatFileSample 数据

派生列:

第 2 列返回带有子字符串的值

(DT_STR,50,1252)SUBSTRING(Total,3,20) 

第 1 列(orderDate)需要替换 T 和 Am/Pm 值,输出应该是

2017-11-06 11:17:40   from 2017-11-06T11:16:08 AM GMT

在此处输入图像描述

4

1 回答 1

1

您可以使用以下表达式来实现此目的:

SUBSTRING([Order date],1,10) + " " 
+ (FINDSTRING([Order date],"AM", 1 ) > 0 ? SUBSTRING([Order date],12,2)  : SUBSTRING([Order date],12,2)  == "12" ? "00" : (DT_WSTR, 2 )((DT_I4)SUBSTRING([Order date],12,2) + 12))
+ SUBSTRING([Order date],14,6)
于 2017-11-06T17:59:13.783 回答