【发布时间】:2019-10-05 23:07:24
【问题描述】:
我有分隔文本文件,我将在其中加载到数据库表中 如何将 DT_STR col 加载到 DT_DBDATE ,DT_STR 到 DT_DATETIME。
在文本文件中
COL1 : Predicted delivery date : DT_STR
COL2 : ScanDateTime : DT_STR
在目标表中:
COL1 : Predicted delivery date : DATE (DataType)
COL2 : ScanDateTime : DATETIME
我需要以以下格式加载数据
Switchoffset (Substring(ScanDateTime , 1, 22)+':'+Substring(ScanDateTime , 23, 24),'-05:00')
我试图使用派生列将此数据加载到目标表中:
我给了这个表达
COL 1:
(DT_DBDATE)LEFT([Predicted Delivery Date],10)
COL 2:
(DT_DATE)(SUBSTRING([ScanDateTime ],1,4) + "-" + SUBSTRING([ScanDateTime ],5,2) + "-" + SUBSTRING([ScanDateTime ],7,2),'-05:00')
但两者都给出错误:
[派生列2] 错误:尝试 执行类型转换。 [派生列2] 错误:SSIS 错误代码 DTS_E_INDUCEDTRANSFORMFAILUREON错误。 “派生列”失败 因为发生了错误代码 0xC0049064,并且错误行处置 关于“派生列.输出[派生列输出].列[预测]” 指定错误失败。指定对象发生错误 的指定组件。之前可能有错误信息发布 这包含有关失败的更多信息。
对于 Col1,我需要如何处理 Null 值并将数据加载到日期格式的目标表中?
对于 Col2,我如何为该日期时间列编写 Switchoffset (exp) - 5hrs 的表达式并加载?
【问题讨论】:
标签: sql sql-server datetime ssis etl