English 中文(简体)
为什么 SSIS 包中的 > 条件分割返回 >= 的结果?更新:(DateTime!=DT_DBTIMESTAMP ?!)
原标题:
  • 时间:2009-01-07 18:27:57
  •  标签:

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

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

我的包依然执行了一个数据流任务,其中有一个条件拆分转换,其条件为date>@[User::max_date]。结果集始终是单行,DateTime 值等于 User::max_date,即如果没有添加比 max(date) 更近的日期行,则返回包含 max(date) 的行。这是意外的行为。

此外,条件拆分的其他输出是不正确的 - 它是所有行 date < @[User::max_date],而不是所有行 date <= @[User::max_date],这是人们所期望的。

为什么会发生这件事?

更新:

我已经想通了这是如何发生的,但不知道原因。 User :: max_date 存储DateTime,我的Data Flow任务中的 date 值是 DT_DBTIMESTAMP 。 通过使用 DATEDIFF(..)进行比较,它们只在毫秒及以后的时间有所不同。

所以我可以绕过这个问题,但我不知道为什么要这样实现。

评论?

最佳回答

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

问题回答

暂无回答




相关问题