SSIS:使用指定时间将日期转换为日期时间戳

时间:2014-01-14 14:34:18

标签: sql ssis substring

我一直在研究如何转换我在flatfile中的日期字符串,同时指定时间。我找到了使用DT_DBTIMESTAMP在SSIS中通过派生列进行转换的结果。但在我的情况下,我需要在9AM:9:00:00.000的时间添加,因为平面文件源没有它。

所以在我的情况下,我从扁平字符串中得到了这个例子:

5/9/80

我希望它能在SSIS中作为以下的1980-05-09 9:00:00.000

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

使用数据转换首先将日期更改为DT_DBTIMESTAMP,然后在表达式中使用带有以下内容的派生;

DATEADD("Hh",9,[COLUMN])

显然将列更改为数据流中的列。这应该会在时间戳上增加9个小时。

答案 1 :(得分:1)

试试这个:

DATEADD("HH",9,(DT_DBTIMESTAMP)((DT_STR,30,1252)(DT_DBDATE)([Create Date])))

[创建日期] = 5/9/80

答案 2 :(得分:0)

DATEADD("Hh",9, (DT_DBDATE)("19" + SUBSTRING([col], 5, 2) + "-" + RIGHT("00" + REPLACE(SUBSTRING([col], 3, 2), "/", ""), 2) + "-" + RIGHT("00" + REPLACE(SUBSTRING([col], 1, 2), "/", ""), 2)))