【发布时间】:2014-01-14 14:34:18
【问题描述】:
我一直在研究如何转换我的平面文件中的日期字符串并指定时间。我找到了使用 DT_DBTIMESTAMP 通过 SSIS 中的派生列进行转换的结果。但在我的情况下,我还需要添加 9AM: 9:00:00.000 的时间,因为平面文件源没有它。
所以在我的情况下,我有这个来自扁平字符串的例子:
5/9/80
我希望它在 SSIS 中如下 1980-05-09 9:00:00.000
有什么想法吗?
【问题讨论】:
我一直在研究如何转换我的平面文件中的日期字符串并指定时间。我找到了使用 DT_DBTIMESTAMP 通过 SSIS 中的派生列进行转换的结果。但在我的情况下,我还需要添加 9AM: 9:00:00.000 的时间,因为平面文件源没有它。
所以在我的情况下,我有这个来自扁平字符串的例子:
5/9/80
我希望它在 SSIS 中如下 1980-05-09 9:00:00.000
有什么想法吗?
【问题讨论】:
试试这个:
DATEADD("HH",9,(DT_DBTIMESTAMP)((DT_STR,30,1252)(DT_DBDATE)([Create Date])))
[创建日期]= 5/9/80
【讨论】:
使用数据转换首先将日期更改为 DT_DBTIMESTAMP,然后在表达式中使用带有以下内容的派生;
DATEADD("Hh",9,[COLUMN])
显然将列更改为数据流中的列。这应该在时间戳上增加 9 小时。
【讨论】:
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)))
【讨论】: