0

我有一个 SSIS 数据流条件拆分转换,它在应该返回 > 结果时返回 >= 结果。

从一开始...我的 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. 在将它们与 a 进行比较时,DATEDIFF(..)它们仅在几毫秒或更长时间内有所不同。

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

评论?

4

1 回答 1

0

没关系。在微软论坛上找到了答案。

于 2009-01-09T01:49:31.387 回答