【发布时间】:2010-09-30 02:29:53
【问题描述】:
我有一个 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 正在存储一个日期时间,而我的数据流任务中的 date 值是 DT_DBTIMESTAMP。将它们与DATEDIFF(..) 进行比较后,它们的差异仅在毫秒及以上。
所以我可以解决这个问题,但我不知道为什么会这样实现。
评论?
【问题讨论】:
标签: datetime ssis conditional dataflow dataflowtask