我在SSIS包中有2个变量,作为字符串的CurrFile和DateTime数据类型的File_Dt。我想从CurrFile中提取DateTime并将其存储到File_Dt变量中。为此,我使用如下表达式:
(DT_DBDATE) SUBSTRING( @[User::CurrFile], 21,14 )
进行SUBSTRING后的值是20190725001614。现在,我想将此值存储为File_Dt变量中的DateTime。这样做时出现此错误。
尝试从数据类型转换时发生错误代码0x80020005
DT_WSTR到数据类型DT_DBDATE。
最佳答案
您必须确保该字符串包含具有以下格式的数据时间值:yyyy-MM-dd HH:mm:ss
。还可以使用DT_DATE
或DT_DBTIMESTAMP
代替DT_DBDATE
尝试以下表达式:
(DT_DBTIMESTAMP) SUBSTRING( @[User::CurrFile], 21,4 ) + "-" +
SUBSTRING( @[User::CurrFile], 25,2 ) + "-" +
SUBSTRING( @[User::CurrFile], 27,2 ) + " " +
SUBSTRING( @[User::CurrFile], 29,2 ) + ":" +
SUBSTRING( @[User::CurrFile], 31,2 ) + ":" +
SUBSTRING( @[User::CurrFile], 33,2 )