我有一个SSIS数据流条件分割变换,当它应该返回一个>时返回一个> =结果。结果
从一开始......我的SSIS包执行一个SQL任务,该任务将一个表中的max(日期)存储在具有包范围的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(..)
进行比较后,它们的差别仅在几毫秒甚至更长时间。
所以我可以解决这个问题,但我不知道为什么会这样实现。
评论