2009-01-07 24 views
0

我有一个SSIS数据流条件拆分转换,它应返回>>结果时返回> =结果。为什么> SSIS包中的条件分割返回> = result?更新:(DateTime!= DT_DBTIMESTAMP?!)

从一开始...我的SSIS包执行一个SQL任务,它将一个表中的max(date)存储在具有包范围的DateTime类型的变量User :: max_date中。

然后我的程序包继续执行数据流任务,该任务的条件拆分转换条件为date > @[User::max_date]。结果集始终是一个DateTime值等于User :: max_date的单行,即如果没有更多行添加更多近期日期而不是max(date),则返回包含max(date)的行。这是意想不到的行为。

此外,条件拆分的另一个输出是不正确的 - 它是所有与date < @[User::max_date]一致的行,而不是所有与date <= @[User::max_date]一样的行。

这是怎么发生的?

更新:

我已经想通了,这是怎么发生的,然而不知其所以然。 User::max_date正在存储DateTime,而我的数据流任务中的date值为DT_DBTIMESTAMP。将它们与DATEDIFF(..)进行比较时,它们仅在毫秒及以后不同。

所以我可以解决这个问题,但我不知道为什么会这样实现。

评论?

回答

0

没关系。在微软forums上找到答案。

相关问题