我有一个SSIS数据流条件拆分转换,它应返回>>结果时返回> =结果。为什么> SSIS包中的条件分割返回> = result?更新:(DateTime!= DT_DBTIMESTAMP?!)
从一开始...我的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
。将它们与DATEDIFF(..)
进行比较时,它们仅在毫秒及以后不同。
所以我可以解决这个问题,但我不知道为什么会这样实现。
评论?