我有一个 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(..)
它们仅在几毫秒或更长时间内有所不同。
所以我可以解决这个问题,但我不知道为什么会这样实现。
评论?