我有一个 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 code> 存储DateTime,我的Data Flow任务中的
date code>值是
DT_DBTIMESTAMP code>。 通过使用
DATEDIFF(..) code>进行比较,它们只在毫秒及以后的时间有所不同。
所以我可以绕过这个问题,但我不知道为什么要这样实现。
评论?