SSIS Date/Numeric 从平面文件转换
SSIS Date/Numeric Conversion from Flatfile
我有一个包含 2 列的平面文件。一种是这种格式的日期时间
2017-11-06T11:16:08 AM GMT
和另一列以这种格式存储的总值
£39.00
.
目标是 OLEDB(毫秒 sql),
Column 1 is Datetime and column 2 is Int in the destination
SSIS
中使用派生列的数据转换未返回列 1(日期)所需的输出
PS: 目标数据类型不能改变
派生列:
第 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
您可以使用以下表达式来实现:
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)
我有一个包含 2 列的平面文件。一种是这种格式的日期时间
2017-11-06T11:16:08 AM GMT
和另一列以这种格式存储的总值
£39.00
.
目标是 OLEDB(毫秒 sql),
Column 1 is Datetime and column 2 is Int in the destination
SSIS
中使用派生列的数据转换未返回列 1(日期)所需的输出
PS: 目标数据类型不能改变
派生列:
第 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
您可以使用以下表达式来实现:
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)