SSIS使用派生列转换时间戳格式

时间:2013-12-04 23:44:41

标签: ssis

我在文本文件中有一个如下所示的时间戳:7/2/2013 17:40:22

我需要将其转换为:2013-07-02 17:40:22.913

使用派生列,我尝试了这个:(DT_DBTIMESTAMP)TIME_STAMP

(DT_DBTIMESTAMP)(SUBSTRING(TIME_STAMP,1,4) + "-" + 
SUBSTRING(TIME_STAMP,5,2) + "-" + 
SUBSTRING(TIME_STAMP,7,2))

但是我收到错误:不支持DT_STR和DT_DBTIMESTAMP类型之间的转换。

谢谢!

2 个答案:

答案 0 :(得分:1)

如果你必须去演员阵容,请告诉我,我会编辑这个答案以反映它。否则,请简化您的生活并修复平面文件连接管理器。默认情况下,它会假设每个列都是varchar(50)。这对于日期和时间来说变得棘手,因为应该转换的众所周知的格式需要太多的表达式垃圾才能使它们工作。

在您的情况下,将类型更改为DT_DATE我知道您认为这只是为了处理日期而是DT_DBDATE

enter image description here

只需更改为该数据类型,我就可以毫无问题地导入您的值。

enter image description here

答案 1 :(得分:-1)

使用令牌会...假设你的时间戳是字符串(WSTR)格式

TOKEN([Order Date],"/",3) + "-" + TOKEN([Order Date],"/",1) + "-" + TOKEN([Order Date],"/",2)