2012-05-23 86 views
1

所以,我创建了一个变量“批”与数据类型datetime。现在我的OLEBD源文件有一个“addDate”列,例如2012-05-18 11:11:17.470空白的目的地也将被填充。SSIS:比较日期时间和变量

现在此列ADDDATE有很多的日期,我想复制这是所有日期“2012-05-18 11:11:17.470”

当我把变量的值作为这个日期,它会自动更改到mm/dd/yyyy hh; mm AM格式,因此在我的条件拆分转换中,它无法将日期与变量匹配,因此没有记录被复制到目的地!

问题到底在哪里?

谢谢!

回答

0

我找到了更简单的解决方案。选择数据类型作为字符串。放任何期望的价值。 在进行条件分割之前,您需要进行数据转换转换。 将其转换为DT_DBTIMESTAMP,然后运行该程序包。

它的工作原理!

0

我有这个问题,我发现最好的解决方案不是“漂亮”。 基本上你需要将变量的“表达式”和“作为表达式求值”更改为真(否则它将忽略表达式上的值)。

秘密是(和我说这不是一个漂亮的解决方案的原因种类)创建第二个变量来评估第一个变量的表达式,因为您不能根据表达式更改变量的值。

所以我们说你的变量称为“DateVariable”,你有23/05/2012,创建一个名为“DateVar2”,例如变量,其表达设为

(DT_WSTR,4)YEAR(@ [用户: (DateVariable])+“/”+ RIGHT(“0”+ (DT_WSTR,2)MONTH(@ [User :: DateVariable]),2)+“/”+ RIGHT(“0”+ (DT_WSTR,2 )DAY(@ [用户:: DateVariable]),2)

这会给你2012/05/23

只需继续获取所需格式的日期