0

下面是代表出生日期 (yymmdd) 的字符串。我想将其转换为日期时间格式并使用 ssis 加载到数据库中。我该怎么做?在我的派生列中,我有 (DT_DATE)(SUBSTRING([Drv DOB],1,2) + "-" + SUBSTRING([Drv DOB],3,2) + "-" + SUBSTRING([Drv DOB],5 ,2)),但它不起作用。

我得到这些错误:

  1. [派生列 [2]] 错误:尝试执行类型转换时出错。
  2. [派生列 [2]] 错误:SSIS 错误代码 DTS_E_INDUCEDTRANSFORMFAILUREONERROR。“派生列”失败,因为发生错误代码 0xC0049064,并且“派生列.输入 [派生列输入].列 [驱动 DOB]”上的错误行处置指定错误失败。指定组件的指定对象发生错误。在此之前可能会发布错误消息,其中包含有关失败的更多信息。

•470324 •470324 •470209 •101 •0

4

2 回答 2

0

YEAR 有 4 位数字而不是 2,所以它是:

(DT_DATE)("20" + SUBSTRING([Drv DOB],1,2) + "-" + 
                 SUBSTRING([Drv DOB],3,2) + "-" + 
                 SUBSTRING([Drv DOB],5,2))
于 2014-08-20T07:38:02.580 回答
0

这对我有用!感谢大家

([Drv DOB] == "0") || ([Drv DOB] == "101") ? NULL(DT_DBTIMESTAMP) : (DT_DBTIMESTAMP)(SUBSTRING([Drv DOB],1,2) + "-" + SUBSTRING([Drv DOB],3,2) + "-" + SUBSTRING([Drv DOB],5,2))
于 2014-08-21T15:37:17.290 回答