为什么> SSIS包中的条件拆分返回> =结果?更新:(DateTime!= DT_DBTIMESTAMP ?!)

时间:2009-01-07 18:27:57

标签: datetime ssis conditional dataflow dataflowtask

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

从一开始......我的SSIS包执行一个SQL任务,该任务将一个表中的max(日期)存储在具有包范围的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(..)进行比较后,它们的差别仅在几毫秒甚至更长时间。

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

评论

1 个答案:

答案 0 :(得分:0)

没关系。在Microsoft forums上找到答案。